2017-10-09 9 views
1

私のクラスはBottomSheetDialogFragmentから拡張し、このレイアウトでは2つのrecyclerViewを使用します。常に1つのrecyclerViewスクロール可能な他のリサイクルビューは動作しません。使用方法2 recyclerViewでのBottomSheetDialogFragment

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainCoordinatorLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <LinearLayout 
     android:id="@+id/mainBottomSheet" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 


     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recyclerViewOne" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" /> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recyclerViewTwo" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" /> 

    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 
+1

を設定することで、この問題を解決しますが、同時に両方をスクロールしたいですか? – Kathi

+0

@Kathi no、sperate scroll –

+0

しかし、常に1 recyclerViewスクロール可能なリサイクルビューは動作しません。より良い理解のために質問を編集できますか? – Kathi

答えて

3

最後に答えが得られました。 CoordinatorLayoutで2 RecyclerViewを使用します。

Two RecyclerViews in CoordinatorLayout

<android.support.design.widget.CoordinatorLayout 
     android:id="@+id/mainBottomSheet" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/white"> 

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

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

</android.support.design.widget.CoordinatorLayout> 

RecyclerViewの一つはmatch_parentでなければならず、他方は任意のサイズのものであることに留意されたいです。最初のRecyclerViewにmatch_parentを提供することをお勧めします。

これにより、2つのRecyclerViewがスクロール可能になります。

以下のコードを使用してRecyclerViewsを半分に簡単に変更できます。

WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
      DisplayMetrics displayMetrics = new DisplayMetrics(); 
      windowManager.getDefaultDisplay().getMetrics(displayMetrics); 
      deviceScreenUtilsWidth = displayMetrics.widthPixels; 
recyclerViewLeft.getLayoutParams().width = deviceScreenUtilsWidth/2; 
0

私はこのT似たような状況を持っていますが、私の場合、最初のrecyclerviewは水平である2つ目は垂直です。私は2番目のものを直接スクロールできませんでした。だから私は道

<android.support.design.widget.CoordinatorLayout 
     <android.support.v4.widget.NestedScrollView 

     <android.support.v7.widget.RecyclerView 
     <android.support.v7.widget.RecyclerView 

に従うことによって、第二recyclerview

 recycler.setNestedScrollingEnabled(false); 
関連する問題