일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Filter
- 다시 정리해야함
- 취준기록
- array랑 list
- 알고리즘 인증_1주차
- foldindexed
- 알고리즘 인증_2주차
- 코틀린
- iPortfolio
- 알고리즘 인증
- 다시정리하기
- 다시봐
- filternot
- 코딩테스트
- recyclerview
Archives
- Today
- Total
Moments of growth
[Kotlin] ScrollView 안에 RecyclerView 만드는 방법 본문
📌ScrollView: 위젯이나 레이아웃이 화면에 넘칠 때 사용함
✔ default로 수직으로 스크롤 가능
✔ ScrollView 안에는 단 하나의 위젯만 넣을 수 있다
✔ ScrollView 안에 RecyclerView를 사용할 경우 이중 스크롤 현상이 나타나서 제대로 기능이 구현되지 않을 수 있다
✔ 이 현상을 막기 위해서 NestedScrollView를 사용한다 ❗
📌NestedScrollView: View들이 함께 스크롤된다
✔ 스크롤뷰는 스크롤뷰대로 움직이고, 그 안에 있는 RecyclerView는 RecyclerView대로 움직이는 것을 막기 위해서 ScrollView 대신 NestedScrollView를 쓴다
✔ 역시 내부에 ViewGroup을 하나만 가질 수 있다
✔ 주의할 점은 RecyclerView 속성에 android:nestedScrollingEnabled="false" 를 해줘야한다
✔ 하지만 NestedScrollView 안에 RecyclerView를 사용한다면 RecyclerView는 아이템을 미리 생성해서 뷰를 재사용하지 못한다 ➡ 뷰를 재사용해서 메모리 효율을 높일 수 있다는 장점이 사라지게 된다⚠
📌fragment_inhome.xml
<androidx.core.widget.NestedScrollView //ScrollView 대신 NestedScrollView 적용
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_now"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="18dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="18dp"
android:nestedScrollingEnabled="false" //꼭 설정해주기
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_now"
tools:itemCount="7"
tools:listitem="@layout/item_now_list">
</androidx.recyclerview.widget.RecyclerView>
...
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
[참고 블로그] https://velog.io/@kimbsu00/Android-7
'Android [Kotlin] 💻🤍' 카테고리의 다른 글
[Kotlin] EditText에서 클릭이나 수정 막기 (0) | 2021.11.19 |
---|---|
[Kotlin] ScrollView 맨위로 버튼 누르면 상단으로 가기 (0) | 2021.11.19 |
[Kotlin] AppCompatButton 이미지 넣기 + 버튼 음영 없애기 (0) | 2021.11.19 |
[Kotlin] TabLayout swipe 막기 (0) | 2021.11.19 |
[Kotlin] RecyclerView 가로 모드로 구현 (0) | 2021.11.19 |
Comments