2015-08-27 47 views
0

我將CoordinatorLayout與ViewPager 結合使用,並且ViewPager將CoordinatorLayout內部的所有空間都拿走,因此AppBarLayout完全隱藏。AppBarLayout始終隱藏

<?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" 
    tools:context=".TabbedScreenActivity" 
    android:id="@+id/root" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsingToolbarLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/acb_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/primary" 
       app:theme="@style/CustomToolbarStyle"/> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <LinearLayout 
     android:foregroundGravity="bottom" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

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

     <kuwaitnet.cashandcash.gui.views.SlidingTabLayout 
      android:id="@+id/sliding_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/black" 
      android:orientation="horizontal"> 
     </kuwaitnet.cashandcash.gui.views.SlidingTabLayout> 

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

回答

1

這是我目前在當viewpager的一個頁面滾動了其隱藏工具欄我當前的項目。忽略drawerlayout和navigationview。

嘗試增加app:layout_scrollFlags="scroll|enterAlways"到工具欄

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 


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

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="?attr/colorPrimary" 
       android:minHeight="?attr/actionBarSize" 
       android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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


      <!-- FIX for intermittent invisible app bar layout 
      http://stackoverflow.com/questions/30895579/coordinatorlayout-toolbar-invisible-on-enter-until-full-height--> 
      <View 
       android:id="@+id/appbar_bottom" 
       android:layout_width="match_parent" 
       android:layout_height="1dp" 
       android:background="@android:color/transparent" 
       android:visibility="invisible" /> 

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

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewPager_main" 
      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="15dp" 
      android:src="@drawable/ic_add_white_24dp" 
      app:backgroundTint="?attr/colorPrimaryDark" 
      app:layout_behavior="com.bitbitbitbit.thefreebees.ui.utils.ScrollingFabBehavior" /> 

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

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/nav_header" 
     app:menu="@menu/menu_drawer" /> 
</android.support.v4.widget.DrawerLayout> 
+0

不,我只是想APPNAME工具欄和操作菜單按鈕。當垂直滾動任何ViewPager的頁面時,工具欄應該隱藏。 –

+0

@AlexandruCircus ...編輯。嘗試將'app:layout_scrollFlags =「scroll | enterAlways」'添加到您的工具欄。 –

+0

它現在可以工作,但工具欄(當它可見時)覆蓋viewPager的內容。我希望viewPager在工具欄下方,並在工具欄隱藏時向上滾動。我可以通過在每個頁面上的每個RecyclerView上設置paqddingTop和clipToPadding =「false」來實現 –

1

來源: http://blog.grafixartist.com/material-design-tabs-with-android-design-support-library/

基本上,工具欄滾動過程中隱藏,那麼你需要指定標誌:app:layout_scrollFlags="scroll|enterAlways"

因此,你的工具欄將會是這樣的:

<android.support.v7.widget.Toolbar 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

總之,這裏的東西,你可以使用:

<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:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

     <android.support.design.widget.TabLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

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

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

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