我在NestedScrollView中布置RecyclerView,并希望使用RecyclerView进行NestedScrollView滚动,但只有在recyclelerView达到最后才会发生,下面是我的布局代码:
<android.support.v4.widget.NestedScrollView android:id="@+id/lists_frame" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" tools:context="com.example.niuky.design.MainActivity4" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <View android:id="@+id/header" android:layout_width="match_parent" android:layout_height="256dp" android:background="@color/material_blue_grey_800" /> <View android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="?android:attr/actionBarSize" android:background="@color/material_blue_grey_950" /> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview2" android:layout_width="match_parent" android:layout_height="match_parent" android:minHeight="700dp" /> </LinearLayout> </android.support.v4.widget.NestedScrollView>
这是我的运行时视图:
解决方法
<android.support.v4.widget.NestedScrollView android:id="@+id/nested_scrollbar" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior" android:scrollbars="none" > <LinearLayout android:id="@+id/nested_scrollbar_linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <android.support.v7.widget.CardView android:id="@+id/flexible.example.cardview" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.CardView> <android.support.v7.widget.RecyclerView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </LinearLayout> </android.support.v4.widget.NestedScrollView>
并将.setNestedScrollingEnabled应用于recyclelerview并将其设置为false
P.s:for Api lower 21:
ViewCompat.setNestedScrollingEnabled(recyclelerView,false);