2015-11-06 182 views
3

當我滾動ListViewFragment我的ToolBar不隱藏/顯示。在FragmentAndroid工具欄隱藏不起作用

<?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:layout_width="match_parent" 
    android:layout_height="match_parent"> 

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

     <include 
      layout="@layout/toolbar_layout"/> 

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

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

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

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

這我代碼: 我用樣品從here 這是我XML

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_home, container, false); 

    mViewPager = (ViewPager) view.findViewById(R.id.home_viewpager); 
    mAdapter = new HomeScreenPagerAdapter(getChildFragmentManager(), getActivity()); 
    mViewPager.setAdapter(mAdapter); 
    mTabLayout = (TabLayout) view.findViewById(R.id.home_tabs); 
    mTabLayout.setupWithViewPager(mViewPager); 


    return view; 
} 

添加工具欄佈局

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    app:layout_scrollFlags="scroll|enterAlways|snap" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

我可以運行此代碼,但ToolBar不會隱藏。我怎樣才能隱藏/顯示它?

+1

也發佈您的toolbar_layout。另外,您嘗試滾動的列表是否超出了您的屏幕尺寸? – Sevle

+0

@Sevle補充說。是的 - 測試列表足夠大(比屏幕大) – MyNameIs

+0

我沒有看到你的工具欄實現有什麼問題。我只能推測,包含你的片段的列表視圖的視圖不支持可隱藏的工具欄。 (也許你將ListView封裝在LinearLayout或簡單的ScrollView中?)。嘗試把你的ListView放在NestedScrollView下,並檢查它是否有效。無論如何,如果你包含你的片段的佈局xml,我可能會有更多的想法。 – Sevle

回答

1

您應該告訴我們toolbar_layout的代碼。反正你應該添加到toolbarlayout_scrollFlags這樣的:

<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="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     app:layout_scrollFlags="scroll|enterAlways|snap" /> 

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

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

不適合我 - 我添加了toolBar佈局的代碼。並且還添加了「| snap」。 – MyNameIs

2

沒有什麼不對您的工具欄實現。

appbar_scrolling_view_behavior無法工作的原因是在該片段膨脹的佈局中存在不受支持的小部件。嘗試將您的佈局封裝在NestedScrollView中,例如

<android.support.v4.widget.NestedScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:context=".MainActivity"> 
     /* Your views */ 
    </RelativeLayout> 
</android.support.v4.widget.NestedScrollView> 
0

同樣的問題我解決了通過NestedScrollView而不是ScrollView在可滾動佈局。

+0

嗨列昂尼德,請參閱這篇文章如何正確的好答案:[鏈接](http://stackoverflow.com/help/how-to-answer) – Lag