티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
RecyclerView inside ScrollView is not working
ScrollView 안에 RecyclerView가 작동하지 않습니다.
문제 내용
I'm trying to implement a layout which contains RecyclerView
and ScrollView
at the same layout.
저는 RecyclerView와 ScrollView가 동시에 있는 레이아웃을 구현하려고 합니다.
Layout template:
레이아웃 템플릿:
<RelativeLayout>
<ScrollView android:id="@+id/myScrollView">
<unrelated data>...</unrealated data>
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/my_recycler_view" />
</ScrollView>
</RelativeLayout>
Problems: I can scroll until the last element of ScrollView
.
문제: 스크롤뷰의 마지막 요소까지만 스크롤이 가능합니다.
Things I tried:
제가 알려드릴 수 있는 것은 아래의 문장으로 이해되는 것 같습니다. 시도한 것:
- Card view inside the
ScrollView
(nowScrollView
containsRecyclerView
) - can see the card up until theRecyclerView
. - Initial thought was to implement this
ViewGroup
usingRecyclerView
instead ofScrollView
where one of it's views type is theCardView
, but I got the exact same results as with theScrollView
.
1. ScrollView 내부에 있는 카드 뷰(이제 ScrollView가 RecyclerView를 포함함) - RecyclerView까지만 볼 수 있음.
2. 처음에는 RecyclerView를 사용하여 ScrollView 대신에 이 ViewGroup을 구현하는 것이었지만, 그 결과 ScrollView와 정확히 동일한 결과를 얻었습니다.
높은 점수를 받은 Solution
use NestedScrollView
instead of ScrollView
ScrollView 대신에 NestedScrollView를 사용하세요.
Please go through NestedScrollView reference document for more information.
자세한 내용은 NestedScrollView 참조 문서를 확인해주세요.
and add recyclerView.setNestedScrollingEnabled(false);
to your RecyclerView
RecyclerView에 recyclerView.setNestedScrollingEnabled(false);를 추가하세요.
가장 최근 달린 Solution
If you put RecyclerView
inside NestedScrollView
and enable recyclerView.setNestedScrollingEnabled(false);
, scrolling will working well.
However, there is a problem
만약 RecyclerView를 NestedScrollView 안에 넣고, recyclerView.setNestedScrollingEnabled(false);를 활성화하면 스크롤링이 잘 작동합니다.
그러나 문제가 있습니다.
RecyclerView
don't recycle
해당 RecyclerView는 재활용이 되지 않습니다.
For example, your RecyclerView
(inside NestedScrollView
or ScrollView
) have 100 item.
When Activity
launch, 100 item will create (onCreateViewHolder
and onBindViewHolder
of 100 item will called at same time).
Example, for each item, you will load a large image from API => activity created -> 100 image will load.
It make starting Activity slowness and lagging.
Possible solution:
- Thinking about using RecyclerView
with multiple type.
예를 들어, NestedScrollView나 ScrollView 안에 RecyclerView가 100개의 아이템을 가지고 있는 경우입니다. Activity가 시작되면 100개의 아이템이 생성됩니다(onCreateViewHolder와 onBindViewHolder는 동시에 호출됩니다).
각 아이템마다 API에서 큰 이미지를 로드할 경우 Activity 시작이 느려지고 끊김이 발생할 수 있습니다.
가능한 해결책:
여러 타입을 가진 RecyclerView를 사용하는 것을 고려하세요.
However, if in your case, there are just a few item in RecyclerView
and recycle or don't recycle don't affect performance a lot, you can use RecyclerView
inside ScrollView
for simple
하지만 만약에 RecyclerView에 몇 개의 아이템만 있고, 재활용을 하든 안 하든 성능에 큰 영향이 없는 경우에는 ScrollView 내부에서 RecyclerView를 사용할 수 있습니다.
출처 : https://stackoverflow.com/questions/27083091/recyclerview-inside-scrollview-is-not-working
'개발 > 안드로이드' 카테고리의 다른 글
부모 액티비티에 데이터 전달하기 (0) | 2023.02.01 |
---|---|
카메라로 이미지를 캡처하고 액티비티에 표시하기 (0) | 2023.02.01 |
특정 호스트가 포함된 url 클릭 시 해당 앱 열기 (0) | 2023.02.01 |
커스텀 뷰를 프로그래밍 방식으로 크기 조정하기 (0) | 2023.01.31 |
안드로이드 앱 전체에 특정 폰트 쉽게 적용하기 (0) | 2023.01.31 |