2017-10-08 4 views
0

はにあり、ページの先頭にはRecycleviewsをスワイプしてリフレッシュスワイプを検出するのに問題があります。Android SwipeRefreshLayoutは、スクロールからRecycleViewを停止します

これをやめる方法を教えてください。

また、スワイプしない場合にのみリフレッシュをトリガする方法はありますか?

また、希望するレイアウトを実装するための最良の方法ですか?

<android.support.v4.widget.SwipeRefreshLayout 
    android:id="@+id/activity_main_swipe_refresh_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginBottom="70dp" 
       android:isScrollContainer="false" 
       android:orientation="vertical"> 


       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@drawable/block_border" 
        android:orientation="vertical"> 

        <TextView 
         android:id="@+id/trending_episodes_title" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" /> 

        <!--This is the first affected recycle --> 

        <android.support.v7.widget.RecyclerView 
         android:id="@+id/trendingEpisodesRecycle" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:clipToPadding="false" 
         android:orientation="horizontal" /> 

       </LinearLayout> 


       <!--This is the Second affected recycle --> 

       <android.support.v7.widget.RecyclerView 
        android:id="@+id/allNewsRecycle" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="@dimen/title_top" 
        android:clipToPadding="false" 
        android:orientation="horizontal" /> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@drawable/block_border" 
        android:orientation="vertical"> 

        <TextView 
         android:id="@+id/moods_title" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 

         android:layout_marginTop="@dimen/title_top" 
         android:textColor="@color/colorBlack" 
         android:textSize="20sp" 
         android:textStyle="bold" /> 

        <android.support.v7.widget.RecyclerView 
         android:id="@+id/moodsRecycle" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:clipToPadding="false" 
         android:orientation="horizontal" /> 

       </LinearLayout> 
      </LinearLayout> 
     </RelativeLayout> 
    </ScrollView> 
</android.support.v4.widget.SwipeRefreshLayout> 

答えて

0

[OK]をので、私は、ユーザーがRecycleViewを手放す一度RecycleViewは再びそれに触れ、そして再有効化されているときにSwipeRefreshLayoutを無効にすることで、この問題を解決しました。

ベローは、私のプログラムからそのためのコードです:

 MyRecycleView.addOnScrollListener(new RecyclerView.OnScrollListener() { 

      @Override 
      public void onScrollStateChanged(final RecyclerView recyclerView, int newState) 
      { 

       super.onScrollStateChanged(recyclerView,newState); 
       if (newState != RecyclerView.SCROLL_STATE_IDLE) { // on scroll stop 
        mSwipeRefreshLayout.setEnabled(false); 
       } 
       else 
       { 
        mSwipeRefreshLayout.setEnabled(true); 
       } 

      } 
} 
関連する問題