๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ
๋‰ด์ฐจํŠธ
๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • Flutter
    • Android
    • Algorithm
      • Python
    • Test
    • Python
    • ์ƒ์‚ฐ์„ฑ
    • ๊ฒฝ์ œ
    • ์˜์–ด
    • ์ƒํ™œ ํŒ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

ํƒœ๊ทธ

  • Flutter ๊ณผ๊ฑฐ
  • AssetThumb
  • ํŠน์ง•
  • Android
  • ๋„ค์ด๋น„ ์”ฐ ์ผ์ฐ ์ž๋Š” ๋ฒ•
  • Image.memory
  • null safety
  • ์ผ์ฐ ์ž๋Š” ๋ฒ•
  • ๊ฐ“์ƒ
  • Flutter ๊ธฐ์ดˆ ์‹œ๋ฆฌ์ฆˆ
  • ๋ผ์ดํ”„ํ•ดํ‚น์Šค์ฟจ
  • cruscal
  • ์ฐฝ์—…๋ถ€ํŠธ์บ ํ”„
  • flutter webview
  • ํŒŒ์ด์ฌ
  • Flutter ๋ฏธ๋ž˜
  • getx
  • Flutter Web
  • Flutter pattern
  • ์ฐฝ๋ถ€์บ 
  • bloc
  • enum
  • Python ๋‚ด์žฅ ํ•จ์ˆ˜
  • Flutter ํ˜„์žฌ
  • python ๋‚ด์žฅํ•จ์ˆ˜
  • flutter 2.0
  • PYTHON
  • Firebase
  • Flutter ์˜ ์—ญ์‚ฌ
  • flutter

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ

๋‰ด์ฐจํŠธ

Android

Android / NestedScrollView ๋‚ด์˜ RecyclerView ์ž๋™ ์Šคํฌ๋กค ๋ฌธ์ œ (์Šคํฌ๋กค ๋ฐ€๋ฆผ ํ˜„์ƒ)

2020. 8. 4. 18:36

 

NestedScrollView๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์ฃผ๋กœ ๋‚ด๋ถ€์— RecyclerView๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ focus๊ฐ€ RecyclerView๋กœ ๊ฐ€์„œ ์ƒ๋‹จ์— ๋‚ด์šฉ์ด ๋” ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  RecyclerView๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋กœ Scroll์ด ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜๋Š” ์ด์œ ๋Š” ScrollView๊ฐ€ ์žˆ์„๋•Œ ์ž์‹์— RecyclerView์™€ ๊ฐ™์ด Scroll์ด ๊ฐ€๋Šฅํ•œ ๋ทฐ๊ฐ€ ์žˆ์œผ๋ฉด, ํ•ด๋‹น ์ž์‹ ๋ทฐ์—๊ฒŒ focus๊ฐ€ ๋บ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž์‹๋ทฐ์—๊ฒŒ focus๊ฐ€ ๊ฐ€์ง€ ์•Š๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ๋จผ์ € ๋“œ๋Š” ์ƒ๊ฐ์€ android:focusable(Focus ๊ฐ€๋Šฅ ์—ฌ๋ถ€), android:focusableInTouchMode (์‚ฌ์šฉ์ž ํ„ฐ์น˜์— ์ธํ•œ Focus ๊ฐ€๋Šฅ์—ฌ๋ถ€) ์ด๊ฒ ์ง€๋งŒ ์ด ๋‘˜์€ ์ „ํ˜€ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์ด ๋‘˜์„ ์„ ์–ธํ•˜์˜€์„๋•Œ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์•ผ๊ธฐ๋  ํ™•๋ฅ ์ด ๋†’์Šต๋‹ˆ๋‹ค.

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋”ฑ ํ•œ ์ค„์ด๋ฉด ์ถฉ๋ถ„ํ•œ๋ฐ์š” ๋ฐ”๋กœ ๋‹ค์Œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

android:descendantFocusability="blocksDescendants"

Android Developer descendantFocusablility ๋งํฌ

 

ViewGroup  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

 

developer.android.com

์ด ์†์„ฑ์€ ViewGroup๊ณผ ๊ทธ์— ํŒŒ์ƒ๋œ View๊ฐ„์˜ Focus๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๋ถ€๋ชจ๊ฐ€ focus๋ฅผ ๊ฐ€์ ธ๊ฐˆ์ง€ ์ž์‹์ด focus๋ฅผ ๊ฐ€์ ธ๊ฐˆ์ง€ ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์†์„ฑ์—๋Š” 3๊ฐ€์ง€์˜ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”.

 

  1. afterDescendants
  2. ์ž์‹๋“ค์ด focus๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ๋งŒ focus๋ฅผ ๊ฐ€์ง„๋‹ค. (์ž์‹์—๊ฒŒ ๋จผ์ €์ค€๋‹ค.)
  3. beforeDescendants
  4. ์ž์‹๋“ค๋ณด๋‹ค ๋จผ์ € focus๋ฅผ ๋ฐ›๋Š”๋‹ค.
  5. blockDescendants
  6. ์ž์‹์ด focus๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๊ฒŒ ํ•œ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์„ค์ •ํ•œ ์†์„ฑ์€ 3๋ฒˆ blockDescendants ์ž…๋‹ˆ๋‹ค. ์ž์‹์ด ํฌ์ปค์Šค๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ ์ด์ฃ . ์ด์ œ ๋‚จ์€ ๋ฌธ์ œ๋Š” ์ด ์†์„ฑ์„ ์–ด๋””์— ๋ฐฐ์น˜ํ• ์ง€ ์ž…๋‹ˆ๋‹ค. NestedScrollView์— ์ง์ ‘ ์ด ์†์„ฑ์„ ๋„ฃ์œผ๋ฉด ์ž์‹์ด ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์†์„ฑ์„ ๋„ฃ์„๋•Œ์—๋Š” RecyclerView๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ถ€๋ชจ์—๊ฒŒ ์„ ์–ธํ•ด์•ผ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

<androidx.core.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:fillViewport="true">
   
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            android:orientation="vertical"
            //RecyclerView ๋ฐ”๋กœ ์œ„์˜ ๋ถ€๋ชจ์— ์„ ์–ธ 
            android:descendantFocusability="blocksDescendants">

            <androidx.recyclerview.widget.RecyclerView                        
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
        </LinearLayout>
</androidx.core.widget.NestedScrollView>

์ด๋ ‡๊ฒŒ ์„ ์–ธ์„ ํ•ด์ฃผ์‹œ๋ฉด RecyclerView ๊ฐ€ NestedScrollView์˜ focus๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ์ผ์ด ์—†์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

์ฆ๊ฑฐ์šด ์ฝ”๋”ฉํ•˜์„ธ์š” :)

 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

'Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Android Firebase ๋™์ ๋งํฌ (Dynamic Link)  (0) 2020.07.24
Firebase Release ๋ฒ„์ „ SHA1  (0) 2020.07.24
Android / EditText TouchMode Cursor ๊นœ๋นก์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ  (0) 2020.07.24
    'Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • Android Firebase ๋™์ ๋งํฌ (Dynamic Link)
    • Firebase Release ๋ฒ„์ „ SHA1
    • Android / EditText TouchMode Cursor ๊นœ๋นก์ž„ ๋ฌธ์ œ ํ•ด๊ฒฐ
    ๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ
    ๐ŸŒžโญ๐ŸŒœ๐ŸŒˆ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”