2016-08-11 17 views
0

ツールバーとRecyclerViewが含まれているCoordinatorLayoutがあります。ユーザーがRecyclerViewをスクロールするときに、ツールバーが縮小して隠れるようにレイアウトを構成しました。これは正常に動作します。 RecyclerViewのセル(行)に、水平方向にスクロールするRecyclerViewが含まれていない限りそのようなセルをタップしてスクロールすると、ツールバーは非表示になりません。 CoordinatorLayoutはこれらのセルのスクロールイベントを処理し、何とか混乱しているようです。問題を回避する方法はありますか?コーディネータレイアウトのスクロール処理が中断する

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/main.appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/main.toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <Button 
       android:id="@+id/button1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Button 1" /> 

      <Button 
       android:id="@+id/button2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Button 2" /> 
     </android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/white" 
     android:paddingBottom="0pt" 
     android:paddingLeft="0pt" 
     android:paddingRight="0pt" 
     android:paddingTop="0pt" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recyclerView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentTop="true"> 
     </android.support.v7.widget.RecyclerView> 

    </RelativeLayout> 

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

RecycelerViewの行レイアウトを投稿してください。 – amitairos

答えて

0

は私がこれを提起した後、SO瞬間に答えを見つけました:

は、ここに私のレイアウトです。

https://stackoverflow.com/a/32975317/1036017

基本的には、水平スクロールRecyclerViewが含まれている任意のセルのために、私たちは、ネストされたスクロールを無効にする必要があります。このようなセルのレイアウトの例を次に示します。 android:nestedScrollingEnabledプロパティをfalseに設定しました。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" android:layout_height="250dp"> 

    <android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/recyclerView" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:nestedScrollingEnabled="false"> 
    </android.support.v7.widget.RecyclerView> 

    <ImageView 
     android:layout_width="30dp" 
     android:layout_height="30dp" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     app:srcCompat="@drawable/left_chevron" 
     android:id="@+id/leftArrow" /> 

    <ImageView 
     android:layout_width="30dp" 
     android:layout_height="30dp" 
     android:layout_centerVertical="true" 
     android:layout_alignParentRight="true" 
     app:srcCompat="@drawable/right_chevron" 
     android:id="@+id/rightArrow" /> 
</RelativeLayout> 
関連する問題