2016-11-10 10 views
1

をスクロールしたとき、私は私の活動の一つで崩壊ツールバーを実装して、ツールバーをスクロールすると崩壊しない崩壊しない折りたたみ:はツールバーとrecyclerviewは

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.SwipeRefreshLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/swipeContainer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="@color/white" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:fitsSystemWindows="true" 
     android:layout_height="@dimen/app_bar_height" 
     android:layout_width="match_parent" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/toolbar_layout" 
      android:fitsSystemWindows="true" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:contentScrim="?attr/colorPrimary"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_width="match_parent" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/my_recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:scrollbars="none" /> 


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

私はまた、Gradleのために必要なライブラリを追加しました。スクロールダウンするとき、ツールバーは同じ位置にとどまります。なぜこれが起こっているのか?

答えて

1

AppBarLayoutにはCoordinatorLayoutが必要です。

このビューは、CoordinatorLayout内の直接の子として使用されることに大きく依存します。別のViewGroup内でAppBarLayoutを使用すると、ほとんどの機能は動作しません。 developer.android.com/reference/android/support/design/widget/AppBarLayout.html

より引用

はまた、これらのチュートリアルを見て: http://antonioleiva.com/collapsing-toolbar-layout/

+0

私はそのrecyclerview –

+0

@RainMan内部の別のレイアウトを持っている:あなたはこの中のLinearLayoutは必要ありません。 CoordinatorLayoutは、その動作に基づいてViewsを配置します。 'LinearLayout'を削除し、' RecyclerView'の周りで 'SwipeRefreshLayout'を動かし、トップレベルを' CoordinatorLayout'にします。 – DeeV

+0

@DeeV、コメントありがとう、私はあなたが説明したのと同じ方法を行ったが、今はrecycleviewの内容がツールバーの上にある。 –

1

このコードはあなたを助けるかもしれません.Define CollapsingToolbarをアクティビティで定義し、展開と折りたたみのメソッド を書いてください。

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_car_tracker" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     tools:context="com.example.user.Activity" /> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="180dp" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/toolbarbackgroundcolor" 
      android:fitsSystemWindows="true" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/toolbarbackgroundcolor" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

       <ImageView 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:foregroundGravity="center" 
        android:src="@drawable/location" 
        android:scaleType="centerCrop" 
        app:layout_collapseMode="parallax"/> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 



</android.support.design.widget.CoordinatorLayout> 
関連する問題