2017-01-19 16 views
0

ListViewスクロールでActionBarを非表示にしたいとします。ViewPager内のフラグメントに含まれるListViewスクロールのActionBarを非表示にする

公式ドキュメントは、我々がそうするように、このパターンを使用することをお勧めし:

<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"> 

    <! -- Your Scrollable View --> 
    <android.support.v7.widget.RecyclerView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
      <android.support.v7.widget.Toolbar 
        ... 
        app:layout_scrollFlags="scroll|enterAlways"> 


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

私の「スクロール可能なビューは」内部でレンダリングされるフラグメント内のListViewコントロールであるため、私は、しかし、このパターンを使用することはできませんViewPager。私は私のアプリでは、次のコードを使用します。

<?xml version="1.0" encoding="utf-8"?> 
<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/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.x.y.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/appbar_padding_top" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="48dp" 
       android:background="?attr/colorPrimary" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:popupTheme="@style/AppTheme.PopupOverlay"> 

      </android.support.v7.widget.Toolbar> 

      <android.support.design.widget.TabLayout 
       style="@style/AppTabLayout" 
       android:id="@+id/tabs" 
       app:tabTextAppearance="@style/AppTabTextAppearance" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@mipmap/ic_add_white_24dp" /> 

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

私はCollapsibleToolbarLayoutにAppBarLayout内部ViewPager、およびツールバーとTabLayoutを入れて試してみました。しかし、私がそうすると、ViewPagerのレイアウトは表示されず、ActionBarは永久に隠されます。

私は何をしますか?

答えて

0

CoordinatorLayoutはリストビューでは機能しません。ですから、リストビューをrecyclerview(これは私が強く推奨する)に置き換えるか、リストビューをNestedScrollViewの中に入れてください。あなたが投稿したXMLコードはOKです。これらのいずれかが動作していない場合は、フラグメントのXMLコードを投稿して、もう一度ヒットしてください。

関連する問題