我在一個片段中使用帶有RecyclerView的SwipeRefreshLayout。RecyclerView滾動不能在片段中使用SwipeRefreshLayout
RecyclerView不會向下滾動。
這是我的主要活動的佈局:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<include
layout="@layout/toolbar" />
<!-- Replaced with Fragment -->
<LinearLayout
android:id="@+id/fragment_placeholder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/main_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:layout_gravity="start"
android:background="@color/white"
android:scrollbars="vertical"
/>
</android.support.v4.widget.DrawerLayout>
這工作得很好 - 該片段有問題的RecyclerView替換的LinearLayout與ID fragment_placeholder你可以在上面看到。
片段佈局如下:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/swipe_refresh_layout">
<android.support.v7.widget.RecyclerView
android:id="@+id/content_recycler_view"
android:layout_width="match_parent
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
輕掃刷新手勢工作正常,但如果RecyclerView的含量超過了屏幕尺寸,滾動將無法工作。
我試過設置nestedScrollingEnabled(true),但它也不起作用。
RecyclerView dataView = (RecyclerView) layout.findViewById(R.id.content_recycler_view);
final RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
dataView.setLayoutManager(mLayoutManager);
adapter = new ListContentAdapter();
dataView.setAdapter(adapter);
dataView.setNestedScrollingEnabled(true);
這只是滾動,如果我換一個NestedScrollView圍繞RecyclerView:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/swipe_refresh_layout">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/content_recycler_view"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.SwipeRefreshLayout>
但這破壞了RecyclerView的優勢,重新使用的意見。 爲什麼不滾動?
感謝您的幫助!
是加入Nestedscrollview後,它曾經在me.Thank您! –