2016-04-08 177 views
1

在TabLayout我有2個選項卡,其中第一個放置FrameLayout與recyclerView和第二個選項卡有ScrollView與LinerLayout在其中。當我在任何選項卡中滾動時,我需要隱藏工具欄。當我滾動RecyclerView在第一個選項卡工具欄滾動以及,但當我在第二個選項卡滾動它不是。不明白爲什麼。滾動工具欄Android

我有了這個main_acrivity.xml

<FrameLayout 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/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/coordinator" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context=".MainActivity"> 

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

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

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

      <android.support.design.widget.TabLayout 
       android:id="@+id/tab_layout" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:tabIndicatorColor="@android:color/background_light" 
       app:tabSelectedTextColor="@android:color/background_light" 
       app:tabTextColor="@android:color/background_light"/> 

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



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

</FrameLayout> 

回答

2

新的滾動行爲不會經常android.widget.ScrollView工作,因爲它不支持嵌套滾動。

滾動行爲依賴於支持嵌套滾動的視圖,這需要將視圖樹上的滾動事件傳播到視圖樹上,以便工具欄知道何時滑動並隱藏。

它與RecyclerView一起工作的原因是它默認支持嵌套滾動。

你需要的是一個NestedScrollView

NestedScrollView就像滾動型,但它支持作爲 兩個嵌套滾動父母和孩子在新的和舊的Android版本 。嵌套滾動默認啓用。

所以,在佈局具有滾動型,與android.support.v4.widget.NestedScrollView替換它,並如期滾動視圖行爲將工作:

<android.support.v4.widget.NestedScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- your content here...... --> 

</android.support.v4.widget.NestedScrollView> 
+0

非常感謝你。有時答案很簡單,但問題是嚴重的問題 – shagi