我使用以下布局,但无法使RecyclerView滚动(使用此布局时屏幕上不可见,滚动停止直到NestedScrollView)。
我可以向上滚动到NestedScrollView和CollapsingToolbar来折叠,如果我删除整个NestedScrollView然后我让RecyclerView滚动。
如果我保持线性布局没有NestedScrollView,只有RecyclerView滚动,其余的布局是固定的。
我还在RecyclerView中添加了app:layout_behavior="@string/appbar_scrolling_view_behavior"
,并将RecyclerView保留在NestedScrollView之外。
如果我在NestedScrollView中添加RecyclerView,则不会出现RecyclerView。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.MainFragment">
<!-- android.support.design.widget.AppBarLayout here
with a android.support.design.widget.CollapsingToolbarLayout
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<!-- more layout code here -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/large_text"/>
</RelativeLayout>
<View
android:id="@+id/separator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/colorAccent" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerViewListOfData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:listitem="@layout/recycler_view"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>
答案 0 :(得分:1)
好的,如果您要在RecyclerView
内添加NestedScrollView
,请将此行添加到xml文件app:layoutManager="LinearLayoutManager"
中的RecyclerView中。
实施例
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/your_recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="LinearLayoutManager"/>
</android.support.v4.widget.NestedScrollView>
然后在您填充SomeActivity.java
的{{1}}文件中,在将适配器设置为RecyclerView
之前将此行recyclerView.setNestedScrollingEnabled(false);
放入。{/ p>
实施例
RecyclerView
答案 1 :(得分:1)
我通过在RecyclerView
内嵌套NestedScrollView
并更新recyclerview
我正在使用com.android.support:recyclerview-v7:23.0.1
Android支持库,修订版23。2。0(2016年2月)
v7 RecyclerView库的更改:
RecyclerView现在有一个名为AutoMeasure的选择加入功能,它允许RecyclerView.LayoutManager轻松包装内容或 处理由父母提供的各种测量规范 RecyclerView。它支持所有现有的动画功能 RecyclerView。
如果您有自定义的RecyclerView.LayoutManager,请调用setAutoMeasureEnabled(true)以开始使用新的AutoMeasure API。 所有内置的RecyclerView.LayoutManager对象都支持自动测量 默认值。
RecyclerView.LayoutManager不再忽略某些RecyclerView.LayoutParams设置,例如滚动中的MATCH_PARENT 方向。
注意:这些解除限制可能会导致您的意外行为 布局。确保指定正确的布局 参数。
使用com.android.support:recyclerview-v7:23.4.0
解决了嵌套回收视图不会出现在嵌套滚动视图中的问题