2016-11-15 43 views
1

我有一個自定義工具欄和非選項卡式ViewPager的活動。我的目標是允許工具欄滾動/隱藏,當我在viewPager中水平滾動片段時,我在工具欄中添加了app:layout_scrollFlags="scroll|enterAlways" 。但是,這隻會隱藏工具欄,當我平移工具欄,而不是滾動viewPager時。所以我想也許工具欄沒有從ViewPager中選擇滾動事件,所以我將viewPager包裝在NestedScrollView中。這工作,但它現在不允許我滾動viewPager的整個長度。任何指針任何人?如何允許滾動工具欄與包含水平scrollView的非標籤viewPager?

注:我viewPager片段觀點都包含一個滾動視圖,允許水平滾動

<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"> 
 
    
 
<android.support.design.widget.AppBarLayout 
 
     android:id="@+id/app_bar_layout" 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content" 
 
     android:theme="@style/AppTheme.AppBarOverlay"> 
 

 
     <android.support.v7.widget.Toolbar 
 
      android:id="@+id/view_case_toolbar" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="?attr/actionBarSize" 
 
      android:background="?attr/colorPrimary" 
 
      app:layout_scrollFlags="scroll|enterAlways" 
 
      app:popupTheme="@style/AppTheme.PopupOverlay"/> 
 
    </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.CoordinatorLayout>

回答

0

你給你的看法的細節少量。但我會試一試。

首先,一切應該在CoordinatorLayout之內。它應該有參數android:fitsSystemWindows="false"AppBarLayout也應該有android:fitsSystemWindows="false"Toolbar應該有app:layout_scrollFlags="scroll|enterAlways"來隱藏和顯示。滾動視圖應該有app:layout_behavior="@string/appbar_scrolling_view_behavior"參數。

它應該是這樣的:

<android.support.design.widget.CoordinatorLayout 
    android:fitsSystemWindows="false"> 

    <android.support.design.widget.AppBarLayout 
     android:fitsSystemWindows="false" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      app:layout_scrollFlags="scroll|enterAlways"/> 

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

    <android.support.v4.view.ViewPager 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

這幾乎和我剛剛修改的'android:fitsSystemWindows =「false」'一樣,但工具欄仍然沒有隱藏在這個配置中。 (只隱藏當我滑動工具欄而不是視圖尋呼機) –

+0

「我的目標是允許工具欄滾動/隱藏,當我在viewPager水平滾動片段」 - 這是行不通的。我的解決方案將在垂直滾動「ViewPager」的內容時工作。你必須實現你自己的'CoordinatorLayout.Behavior'並將其分配給'Toolbar'。 –

0

我想這會幫助你:

<?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" 
    android:id="@+id/viewApp" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll" 
      android:background="@drawable/sunshine22" 
      app:titleEnabled="false"> 

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

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="fixed" 
      app:tabGravity="fill" 
      app:tabIndicatorColor="#fff"/> 

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

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

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

的屬性是不言自明的。有關詳細信息,請參閱R.Zagorski的答案。

+0

對不起我沒有在我的視圖中實現CollapsingToolbarLayout(也不是tablayout) –