๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (377) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Android][Kotlin] ๋ฌธ๊ตฌ ๋ถ๋ถ ์ ๋ณ๊ฒฝ SpannedString ์ข ์ ํญ๋ชฉ ์ ์ธ build.gradle ์ implementation "androidx.core:core-ktx:$core_version" Utility fun String.targetColorSpan( emphasisString: String, @ColorInt colorRes: Int ): SpannedString { if(!this.contains(emphasisString)) return SpannedString(this) val splitStrings = this.split(emphasisString.toRegex()) return buildSpannedString { append(splitStrings[0]) color(colorRes) { append(emphasisString) } appe.. [Kotlin]Bubble Sort ์ธ์ ํ ๋ ๊ฐ์ ์์๋ค์ ๋น๊ตํ๋ฉฐ ์ ๋ ฌํ๋ค. ๊ธฐ๋ณธ swap fun ArrayList.swap(firstIndex: Int, secondIndex: Int) { val temp = this[firstIndex] this[firstIndex] = this[secondIndex] this[secondIndex] = temp } Bubble sort fun ArrayList.bubbleSort(showLog: Boolean = true) : ArrayList { if (this.size < 2) { println("๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ 2 ๋ฏธ๋ง. ๊ทธ๋๋ก ๋ฐํ.") return this } for (end in lastIndex downTo 1) { var swapped = false for(current in 0 un.. [Android][View] ๋ทฐ๊ฐ layout์ ์งํํ๋ ์ค์ requestLayout()์ ํธ์ถํ๋ฉด ์๋๋ค. https://www.youtube.com/watch?v=HbAeTGoKG6k ๋ฌด๋ ค 13๋ ์ ์ ์์. ๊ทธ๋ฌ๋ ์ง๊ธ๋ ์ค์ํ ๊ธฐ๋ณธ ์ง์์ผ๋ก ์์๋ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค. ์์ฝ ์งํํ ๋ฐ๋ชจ (์ด๋ ๊ฒ ํ๋ฉด ์๋ฉ๋๋ค. ๋์ ์์) 1. LinearLayout ์ ์์ํ Custom Layout์ด layout ๊ณผ์ ์ ์งํํ๋ ์ค์, ๊ทธ๋ฌ๋๊น onLayout()์ ํธ์ถํด ์คํํ๋ ์ค์ 2. ์๋ ๋ทฐ๋ฅผ add ํ๊ฑฐ๋(addView()) remove ํ๋ฉด(removeView()) 3. ๊ฒฐ๋ก : ์ด์๊ฐ ์๊ธด๋ค. > ์ผ์ข ์ ์ฌ๊ท๋ฌธ์ ๊ฐ ์๊ธด๋ค. layout ์ค : ์ผ๋ถ ํ์ ์งํฉ(์๋ ๋ทฐ๋ค)์ด๋ ์ ์ฒด ๋ทฐ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ฌ๋ฐฐ์นํ๋ ์ค์ธ๋ฐ ์ด ํ์ด๋ฐ์ addView(), removeView() ํธ์ถ : ๋ ์ด์์ ์ ์ฒด์ ์ํฅ์.. [Android] ํ๋ฉด ์ ํ ์ ๋๋ฉ์ด์ ์์ ๋์์ด๋๊ฐ ์ฑ ์ ๋ฐ์ ์ผ๋ก ํ๋ฉด ์ ํ ์ ๋๋ฉ์ด์ ์ถ๊ฐ๋ฅผ ์์ฒญํ๋ค. ์๊ตฌ ์ฌํญ ์ฑ์ ํ๋ฉด ์ข ๋ฅ๋ ํฌ๊ฒ ๋๋ก ๋๋๋ค. ์๋จ ํด๋ฐ ๋ฒํผ ์ข ๋ฃ ๋ชจ์์ด ํ์ดํ(←)์ธ ๊ฒ๊ณผ ์์ค(X)์ธ ๊ฒ์ผ๋ก ๋๋๋ค. 1. ←ํ๋ฉด์ ์ง์ ํ ๋ ๊ฐ๋ ค์ง๋ ํ๋ฉด์ fade out ์ง์ ํ๋ ํ๋ฉด์ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ฌ๋ผ์ด๋ํ๋ฉฐ ์ง์ 2. ←ํ๋ฉด์ด ์ฌ๋ผ์ง๊ณ ์ด์ ํ๋ฉด์ผ๋ก ๋์๊ฐ ๋ ๋ฑ์ฅํ๋ ์ด์ ํ๋ฉด์ fade in ์ฌ๋ผ์ง๋ ํ๋ฉด์ ์ผ์ชฝ์ผ๋ก ์ค๋ฅธ์ชฝ์ผ๋ก ์ฌ๋ผ์ด๋ํ๋ฉฐ ์ฌ๋ผ์ง 3. X ํ๋ฉด์ ์ง์ ํ ๋ ๊ฐ๋ ค์ง๋ ํ๋ฉด์ fade out ์ง์ ํ๋ ํ๋ฉด์ ์๋์์ ์๋ก ์ฌ๋ผ์ด๋ํ๋ฉฐ ์ง์ 4. X ํ๋ฉด์ด ์ฌ๋ผ์ง๋ก ์ด์ ํ๋ฉด์ผ๋ก ๋์๊ฐ ๋ ๋ฑ์ฅํ๋ ์ด์ ํ๋ฉด์ fade in ์ง์ ํ๋ ํ๋ฉด์ ์์์ ์๋๋ก ์ฌ๋ผ์ด๋ํ๋ฉฐ ์ฌ๋ผ์ง ๊ณผ์ 1) ๋์์ด๋๊ฐ ์.. [Android][Dialog] cancel / dismiss ์ด์ ์ dialog cancel() ํธ์ถ ์ dismiss()๋ ํธ์ถ ๋๋ค๋ ๊ธ์ ์ผ๋ ๊ฑฐ ๊ฐ์๋ฐ. ์์ ํ๋ค dialog์ cancel๊ณผ dismiss์ ์ฐจ์ด๊ฐ ๋ ํท๊ฐ๋ ค์, ์ด๋ฒ์ ํ์คํ ๊ทธ ์ฐจ์ด๋ฅผ ์ธ์งํ๊ณ ๊ฐ๋ ค๊ณ ๊ธ์ ๋จ๊ธด๋ค. ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๊ณ ์ดํดํ๋ค. https://developer.android.com/develop/ui/views/components/dialogs#DismissingADialog Dialogs | Android Developers Dialogs Stay organized with collections Save and categorize content based on your preferences. A dialog is a small window that prompts the u.. [Android][Android 13][API Level 33] ๋ฐํ์ ์๋ฆผ ๊ถํ, ๊ทธ๋ฆฌ๊ณ ๊ธฐํ ๋ณ๊ฒฝ ์์. ์ด์ ๋ฐ๊ฒฌ Android 13 ๋จ๋ง์์ ํธ์๋ฅผ ๋ฐ๊ณ ์์คํ ์๋ฆผ์ ๋์ฐ์ง ๋ชปํ๋ ์ด์๊ฐ ์์์ ์๊ฒ ๋๋ค. ์์ธ ํ์ Android 13๋ถํฐ ์๋ก ์ค์น๋๋ ์ฑ๋ค์ ์๋ฆผ ์์ฑ ๊ถํ์ด ์๋ค๋ ๊ฒ์ ์์๋ค. ํด๋น ์ด์๋ ํ ์คํธ ๋จ๋ง์ด Android 13 ๋จ๋ง์, ํ ์คํธ ์ฑ์ด ์ ๊ท๋ก ์ค์น๋์๊ธฐ ๋๋ฌธ์ด์๋ค. Android 12๋ ๊ธฐ๋ณธ์ผ๋ก ์๋ฆผ ์์ฑ ๊ถํ์ด ์์ด์ ์ด๋ฐ ์ด์๋ฅผ ๋ง๋ ์ผ์ด ์์๋ค. ์ ๋ง ์ ์ค๋ช ํด์ฃผ์ ๊ธ https://codechacha.com/ko/android-13-notification-permission/ Android 13์์ Notification ๊ถํ ์์ฒญ, ์๋ฆผ ๋์ฐ๊ธฐ Android 13์ ๋ณ๊ฒฝ์ฌํญ์ผ๋ก, POST_NOTIFICATIONS ๊ถํ์ด ๋์ ๋์์ต๋๋ค. ์ฑ ๋์์ ์ด๋ค ์.. [Android][Facebook Login] ํ์ด์ค๋ถ ์ฑ ๋ฏธ ์ค์น ์ ๋ก๊ทธ์ธ ๋ถ๊ฐ ์ด์ ์ ๋ชฉ ๊ทธ๋๋ก, ํ์ด์ค๋ถ ์ฑ์ด ์ค์น๋์ง ์์ ๋จ๋ง์์ ์ฑ์ SNS ๋ก๊ทธ์ธ์ Facebook์ผ๋ก ์๋ํ ๊ฒฝ์ฐ, ๋ก๊ทธ์ธ์ด ๋์ง ์๋ ์ด์์๋ค. ํ๋ก์ ํธ์ target Api level์ 33์ด๊ณ , Android OS 13 ๋จ๋ง์์ ๋ฐ์ํ๋ค. ์ด์ ์๋ ๋ฐ์ํ์ง ์์๋ ์ด์์๋ค. Facebook Login sdk ๋ฒ์ ์ ํ์ธํ๋ค. ์ด์ ๋ฐ์ facebook login sdk ๋ฒ์ ์ 14.1.1 ๋ณด๋ค ๋ฎ์๋ฐ. ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ๊ฒ ๋๋ค. Facebook login sdk ๋ฒ์ ์ ์ต์ ์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ ์ด์ ํด๊ฒฐ๋๋ค. [Android][RecyclerView][NestedScrollView] ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ์ฑ๋ฅ ํฅ์ ์์ ์ด๋ฒ ํ๋ก์ ํธ์์ '์ต๊ด ๊ธฐ๋ฅด๊ธฐ'๋ผ๋ ํ ๋ง๋ก 3, 7, 21, 30, 66์ผ์ ์ฌ์ง ์ธ์ฆ ๋ฆฌ์คํธ ํ๋ฉด์ ๊ฐ๋ฐํ๊ฒ ๋์๋ค. ํ๋ฉด์ ๊ธฐ๋ฅด๊ณ ์ ํ๋ ์ต๊ด์ ์ ๋ณด๋ค๊ณผ ์ธ์ฆ ์ฌ์ง ๋ฆฌ์คํธ(์์ ์ ์ฌ๊ฐํ ์ด๋ฏธ์ง๋ค์ด ๊ฐ๋ก 3 X ์ธ๋ก n์ค๋ก ๋ ธ์ถ๋จ)๊ฐ ๋ชจ๋ ๋์์ผ ํ๊ธฐ ๋๋ฌธ์, NestedScrollView๋ฅผ root view๋ก ๋๊ณ ํ๋ฉด layout์ ๊ตฌ์ฑํ๋ค. ์ต๊ด๊ณผ ์ด๋ฏธ์ง ์ ๋ณด๋ค์ ํ๋ฉด ์ง์ ์ ์๋ฒ์์ ๋ฐ์์ ๋ ธ์ถํ๋ค. ๋ฟ๋ฏํ๊ฒ ๋ค ๋ง๋ค๊ณ ๋์, ํ ์คํธ๋ฅผ ํ๋๋ฐ 66์ผ์น ํ๋ฉด์ ์ฑ๋ฅ์ด ๋๋ฌด ๊ตฌ๋ ธ๋ค. ํ๋ฉด์ด ๋ก๋๋๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๋ค. ์ด๋ฅผ ๊ฐ์ ํ๊ณ ์ ๋ง์ ๋จน๊ณ ์์ ์ ๋์ ๋ค. ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๊ฐ NestedScrollView๊ฐ ์ด๋ป๊ฒ ๋์๊ฐ๋์ง ์๊ฒ ๋์๋ค. https://stackoverflow.. ์ด์ 1 ยทยทยท 32 33 34 35 36 37 38 ยทยทยท 48 ๋ค์