web-dev-qa-db-ja.com

ツールバーの代わりにコンテンツのスクロールでTabLayoutを非表示にします

コンテンツのスクロール時にTabLayoutを非表示にします。現在、ネットを検索しましたが、ツールバーを非表示にするサンプルを見つけましたが、TabLayoutを非表示にしたいです。だから私を助けてください。以下のコードを試しました。

<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/main_content"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <Android.support.design.widget.AppBarLayout
        Android:id="@+id/id_appbar"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:fitsSystemWindows="true">

        <Android.support.v7.widget.Toolbar
            Android:id="@+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/id_tabs"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize" 
            style="@style/MyCustomTabLayout"/>

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

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

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

アプリケーションの例を次に示します。 https://play.google.com/store/apps/details?id=com.contextlogic.wishhttps://play.google.com/ store/apps/details?id = co.Vine.Android

21
Sagar Panwala

このアプローチを試してください。主なアイデアは、ツールバーをCoordinatorLayoutの外側に移動し、このビュー構造を他のコンテナレイアウトでラップすることです。

<RelativeLayout 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/id_toolbar_container"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:fitsSystemWindows="true">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/id_toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:layout_scrollFlags="scroll|exitUntilCollapsed" />
    </Android.support.design.widget.AppBarLayout>

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

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

            <Android.support.design.widget.CollapsingToolbarLayout
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                app:layout_scrollFlags="scroll|enterAlways">

                <Android.support.design.widget.TabLayout
                    Android:id="@+id/id_tabs"
                    Android:layout_width="match_parent"
                    Android:layout_height="?attr/actionBarSize" />
            </Android.support.design.widget.CollapsingToolbarLayout>

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

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

    </Android.support.design.widget.CoordinatorLayout>
</RelativeLayout>
35
DmitryArc

こんにちは、ツールバーを非表示にしてタブが表示されるようにするには、次のコードを記述する必要があります。

<Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        app:layout_scrollFlags="scroll|enterAlways"
        ></Android.support.v7.widget.Toolbar>

また、TabLayoutを非表示にする場合は、TabLayoutのブロックでscrollFlagsを使用します

app:layout_scrollFlags="scroll|enterAlways"
1
Tony Barajas

レイアウトのトップビューとしてToolbarを移動し、以前のViewスペースを配置し、Toolbarと同様にスクロールするTabLayoutに置き換える必要があります。 AppBarLayout内。

レイアウトを設定する方法は次のとおりです。

<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/preview_top_parent"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:fitsSystemWindows="true"> 
<Android.support.design.widget.AppBarLayout...> 
<Android.support.v4.view.ViewPager...>    
<Android.support.v7.widget.Toolbar/>    <-!--- Toolbar is direct child of CooridnatorLayout and z-order above all views --!->
</Android.support.design.widget.CoordinatorLayout>

ビデオ

0