web-dev-qa-db-fra.com

Comment désactiver la réduction de CollapsingToolbar lorsque le défilement n'a pas de contenu?

J'utilise le support technique d'Android 'com.Android.support:design:22.2.1', mais le problème est que, lorsque le défilement n'a pas de contenu, la barre d'outils Réduire permet toujours l'action de réduction. Je dois supprimer la réduction de la vue si le parchemin ne contient aucun contenu.

Mon XML:

  <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:fitsSystemWindows="true">

            <Android.support.design.widget.AppBarLayout
                Android:id="@+id/appbar"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:fitsSystemWindows="true"
                Android:background="@Android:color/white"
                Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

                <Android.support.design.widget.CollapsingToolbarLayout
                    Android:id="@+id/collapsing_toolbar"
                    Android:layout_width="match_parent"
                    Android:layout_height="match_parent"
                    Android:fitsSystemWindows="true"
                    app:contentScrim="?attr/colorPrimary"
                    app:expandedTitleMarginEnd="64dp"
                    app:expandedTitleMarginStart="48dp"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed">

                    <fragment
                        Android:id="@+id/pawfile_header"
                        Android:name="com.lightbulb.pawesome.fragments.PawfileHeaderFragment"
                        Android:layout_width="match_parent"
                        Android:layout_height="wrap_content"
                        Android:layout_marginLeft="10dp"
                        Android:layout_marginTop="10dp"
                        Android:fitsSystemWindows="true"
                        app:layout_collapseMode="parallax" />

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

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

            <fragment
                Android:id="@+id/pawfile_timeline"
                Android:name="com.lightbulb.pawesome.user_timeline.PawesomeUserTimelineFragment"
                Android:layout_width="match_parent"
                Android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

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

QUESTION UDPATE:

J'en ai terminé avec la désactivation et l'activation de la réduction de la vue. J'ai utilisé cette ligne de code afin de désactiver la réduction:

AppBarLayout.LayoutParams appbarParams = (AppBarLayout.LayoutParams)     collapsingToolbar.getLayoutParams();
appbarParams.setScrollFlags(0);
collapsingToolbar.setLayoutParams(p);

Le problème est que la barre d’application est forcée pour que l’élévation des scrollflags soit définie sur 0. J’ai essayé d’utiliser appbar.setElevation (0) mais cela n’a aucun effet. Comment puis-je supprimer l'élévation de ma barre des tâches?

14
Earwin delos Santos

récupérez votre référence appbarlayout et définissez setScrollFlags.

AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
p.setScrollFlags(0);
toolbar.setLayoutParams(p);
24
rKrishna

Essayez appbarParams.setScrollFlags(-1); et appBarLayout.setExpanded(true, true) pour supprimer l'élévation.

Et si vous avez recyclerView dans le fragment, essayez recyclerView.setNestedScrollingEnabled(false);

Nécessité de désactiver le développement de CollapsingToolbarLayout pour certains fragments

3
Flatout

Pour arrêter l'effondrement de collapsingtoolbar ne donnez pas 

app:layout_scrollFlags="scroll|exitUntilCollapsed" dans le fichier XML..Vous pouvez supprimer ce code

0
Debarshi Banerjee