내 애플 리케이션을 위해 내가 사용하고 RecyclerView
내부 a를 ScrollView
(가) RecyclerView
사용하여 내용에 따라 높이가 이 라이브러리를 . 스크롤이 작동하지만을 스크롤하면 부드럽게 작동하지 않습니다 RecyclerView
. 나는 오버 스크롤하면 ScrollView
원활 스크롤됩니다 자체.
내가 정의하는 데 사용하는 코드 RecyclerView
:
LinearLayoutManager friendsLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext(), android.support.v7.widget.LinearLayoutManager.VERTICAL, false);
mFriendsListView.setLayoutManager(friendsLayoutManager);
mFriendsListView.addItemDecoration(new DividerItemDecoration(getActivity().getApplicationContext(), null));
RecyclerView
에서 ScrollView
:
<android.support.v7.widget.RecyclerView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:id="@+id/friendsList"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
답변
시도해보십시오 :
RecyclerView v = (RecyclerView) findViewById(...);
v.setNestedScrollingEnabled(false);
대안으로, 지원 디자인 라이브러리를 사용하여 레이아웃을 수정할 수 있습니다. 현재 레이아웃이 다음과 같은 것 같습니다.
<ScrollView >
<LinearLayout >
<View > <!-- upper content -->
<RecyclerView > <!-- with custom layoutmanager -->
</LinearLayout >
</ScrollView >
이를 다음과 같이 수정할 수 있습니다.
<CoordinatorLayout >
<AppBarLayout >
<CollapsingToolbarLayout >
<!-- with your content, and layout_scrollFlags="scroll" -->
</CollapsingToolbarLayout >
</AppBarLayout >
<RecyclerView > <!-- with standard layoutManager -->
</CoordinatorLayout >
그러나 이것은 더 오래 걸리는 길이며, 사용자 정의 선형 레이아웃 관리자에 문제가 없다면 리사이클 러보기에서 중첩 스크롤을 비활성화하십시오.
편집 (2016 년 4 월 3 일)
v 23.2
지원 라이브러리 의 릴리스는 이제 모든 기본 설정에서 팩토리 “컨테이너 랩핑”기능을 포함합니다 LayoutManager
. 나는 그것을 테스트하지는 않았지만 아마도 사용중인 라이브러리보다 선호해야 할 것입니다.
<ScrollView >
<LinearLayout >
<View > <!-- upper content -->
<RecyclerView > <!-- with wrap_content -->
</LinearLayout >
</ScrollView >
답변
나는 이것을 사용해야했다.
mMyRecyclerView.setNestedScrollingEnabled(false);
내 onCreateView()
방법으로.
고마워요!
답변
이 방법으로 사용할 수 있습니다 :
이 라인을 recyclerView xml 파일에 추가하십시오.
android:nestedScrollingEnabled="false"
또는 자바 코드에서 :
RecyclerView.setNestedScrollingEnabled(false);
이것이 도움이 되었기를 바랍니다.
답변
XML과 프로그래밍 방식을 모두 사용해 볼 수 있습니다. 그러나 당신이 직면 할 수있는 문제는 (API 21 이하) XML로 수행하면 작동하지 않습니다. 따라서 Activity / Fragment에서 프로그래밍 방식으로 설정하는 것이 좋습니다.
XML 코드 :
<android.support.v7.widget.RecyclerView
android:id="@+id/recycleView"
android:layout_width="match_parent"
android:visibility="gone"
android:nestedScrollingEnabled="false"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayoutBottomText" />
프로그래밍 방식으로 :
recycleView = (RecyclerView) findViewById(R.id.recycleView);
recycleView.setNestedScrollingEnabled(false);
답변
스크롤보기 대신 중첩 스크롤보기를 사용하면 문제가 해결되었습니다.
<LinearLayout> <!--Main Layout -->
<android.support.v4.widget.NestedScrollView>
<LinearLayout > <!--Nested Scoll View enclosing Layout -->`
<View > <!-- upper content -->
<RecyclerView >
</LinearLayout >
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
답변
비슷한 문제가 있습니다 (Google PlayStore 디자인과 같은 중첩 RecyclerViews를 만들려고했습니다). 이를 처리하는 가장 좋은 방법은 하위 RecyclerView를 서브 클래 싱하고 ‘onInterceptTouchEvent’및 ‘onTouchEvent’메소드를 대체하는 것입니다. 이렇게하면 해당 이벤트의 동작 및 스크롤 방식을 완전히 제어 할 수 있습니다.
답변
ScrollView를 NestedScrollView로 바꾸면 맨 아래로 부드럽게 스크롤됩니다.