2016-07-14 46 views
1

我在一個片段中使用帶有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的優勢,重新使用的意見。 爲什麼不滾動?

感謝您的幫助!

+0

是加入Nestedscrollview後,它曾經在me.Thank您! –

回答

-1

變化:

<android.support.v7.widget.RecyclerView 
       android:id="@+id/content_recycler_view" 
       android:layout_width="match_parent 
       android:layout_height="match_parent" /> 

到:

<android.support.v7.widget.RecyclerView 
       android:id="@+id/content_recycler_view" 
       android:layout_width="match_parent 
       android:layout_height="wrap_content" /> 
+0

甚至嘗試過,沒有變化:( – epsilon

相關問題