Nested Scrollview 스크롤 내부의 Recyclerview가 일반 Recyclerview 또는 Nested Scrollview처럼 빠르게 스크롤되지 않습니다.
나는 RecyclerView
내부를 사용 NestedScrollView
하고 있으며 작동합니다. 하지만 RecyclerView
내부 등을 사용하면 LinearLayout
제스처에 따라 다양한 속도로 스크롤됩니다. 스크롤은 제스처를 듣고 조금만 위로 밀면 조금 스크롤되고 정말 빠르게 위로 밀면 정말 빠르게 스크롤됩니다. 이제 내 문제는 RecyclerView
내부가 NestedScrollView
확실히 스크롤되지만 빠른 스크롤이 작동하지 않는다는 것입니다. 그러나 나는 빠르게 또는 느리게 최대 슬라이드, RecyclerView
또는 NestedScrollView
단지 조금 스크롤합니다.
내 NestedScrollView
또는 RecyclerView
내부 스크롤 뷰를 다양한 속도로 스크롤하려면 어떻게해야합니까?
시험
recyclerView.setNestedScrollingEnabled(false);
기본적으로 setNestedScrollingEnabled
API-21 이후에만 작동합니다.
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
API-21 (Lollipop) 전후에 중첩 스크롤을 비활성화 하는 데 사용할 수 있습니다 . 문서 링크 .
이 도움을 바랍니다!
setNestedSCrollEnabled 메서드를 사용할 수없는 Android 16에서 작업 중이었습니다.
RecyclerView가 Scrolls를 처리하는 것을 막기 위해 내가하는 일.
LinerLayoutManager에서와 마찬가지로 canScrollHorizontally, canScrollVertically를 만들어 기본적으로 false를 반환합니다.
myRecyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false){
@Override
public boolean canScrollHorizontally() {
return false;
}
@Override
public boolean canScrollVertically() {
return false;
}
});
여러 번 반복 한 후 해결책을 찾았습니다.
RecyclerView를 사용하는 경우 :
recyclerView.setNestedScrollingEnabled(false);
NestedScrollingView 내에서 LinearLayout을 사용하는 경우 일반 ScrollView 내에서 LinearLayout을 가져온 다음 스크롤을
scrollView.setNestedScrollingEnabled(false);
android : overScrollMode = "never
<android.support.v4.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
recyclerView.setNestedScrollingEnabled(false);
가끔 유용하지만 항상 사용하지 않는 것이 좋습니다. 리 실러보기에서보기 재활용 기능을 비활성화하기 때문입니다.
대안 :
Try CollapsiveToolbarLayout with Recycler view. put other views in collapsiveTollbar layout.
You can use ScrollView with ExtendRecyclerView class that overrides the onMeasure method. That works for me!
@Override
protected void onMeasure(int widthSpec, int heightSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthSpec, expandSpec);
}
I also met this problem. And upgrade to 26.1.0
fix it.
This is WAI. The NestedScrollView measures its children with the Spec "Unspecified". The child can grow as much as it wants too.
This essentially equates the height of NSV and RV. So as far as the RV is concerned, it believes that it is completely displayed.
Wrap your RV with an LL and give your RV a height. The LL would not set the measure spec to be UNSPECIFIED so the RV would correctly scroll within its set height of whatever DPs you provide.
The only downside of this method is that you will not be able to do a match parent on your RV.
You should wrap recycler view in any layout like LinearLayout and set RecyclerView size to constant, like 800dp. This will enable smooth scroll and recycler view will still recycler views during scroll.
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="800dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>
'developer tip' 카테고리의 다른 글
Azure에서 'Microsoft.SqlServer.Types'버전 10 이상을 찾을 수 없습니다. (0) | 2020.09.06 |
---|---|
c # linq orderby 숫자는 문자열이며 int로 변환 할 수 없습니다. (0) | 2020.09.06 |
IntelliJ Gradle 플러그인 : 제공된 javaHome이 유효하지 않은 것 같습니다. (0) | 2020.09.06 |
Golang에서 http.Get () 요청에 대한 시간 제한을 설정하는 방법은 무엇입니까? (0) | 2020.09.06 |
Android에서 둥근 모서리로 사용자 지정 대화 상자를 만드는 방법 (0) | 2020.09.06 |