web-dev-qa-db-fra.com

Masquer la disposition des onglets lors du défilement du contenu au lieu de la barre d'outils

Je souhaite masquer TabLayout lors du défilement de mon contenu. Actuellement, j'ai cherché sur le net, mais j'ai trouvé des exemples qui masquent la barre d'outils, mais je veux masquer TabLayout. Alors s'il vous plaît, aidez-moi. J'ai essayé ci-dessous le code.

<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>

Voici les exemples d'applications: https://play.google.com/store/apps/details?id=com.contextlogic.wishhttps://play.google.com/ store/apps/details? id = co.Vine.Android

21
Sagar Panwala

Essayez cette approche. L'idée principale est de déplacer la barre d'outils en dehors de CoordinatorLayout et d'envelopper cette structure de vue avec une autre disposition de conteneur.

<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

Bonjour, vous souhaitez faire disparaître la barre d'outils et les onglets toujours affichés, vous devez écrire le code suivant:

<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>

Et si vous voulez masquer le TabLayout, utilisez scrollFlags dans le bloc de TabLayout

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

Vous devez déplacer le Toolbar comme vue de dessus dans la mise en page et le remplacer par View qui occupera l'espace Toolbar précédent et défilera comme le fait TabLayout, dans votre AppBarLayout.

Voici comment vous devez définir votre mise en page.

<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>

Voici vidéo

0