J'ai une configuration CollapsingToolbarLayout et je place un fond d'écran là-bas. Je veux pouvoir l'empêcher de s'effondrer complètement.
J'ai essayé minheight et bien d'autres choses, mais je ne peux pas le comprendre.
Comment puis-je l'empêcher de s'effondrer sur la deuxième capture d'écran?
Afficher lorsque l'activité est chargée
Point d'arrêt souhaité
Point d'arrêt actuel
CollapsingToolbarLayout
fonctionne très étroitement avec Toolbar
et en tant que tel, la hauteur réduite dépend de la barre d'outils.
J'ai pu résoudre votre problème en utilisant cette mise en page ( Remarque il va dans la configuration normale de CoordinatorLayout
/AppBarLayout
, Avec Fab et un NestedScrollView
ou RecyclerView
):
<Android.support.design.widget.CollapsingToolbarLayout
Android:id="@+id/collapsing_toolbar"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:statusBarScrim="?attr/colorPrimaryDark"
app:contentScrim="@Android:color/transparent"
app:titleEnabled="false"
>
<!-- There isnt a contentSCrim attribute so the toolbar is transparent after being
collapsed
Disabled the title also as you wont be needing it -->
<ImageView
Android:id="@+id/image_v"
Android:layout_width="match_parent"
Android:layout_height="360dp"
Android:layout_gravity="center"
Android:scaleType="centerCrop"
Android:src="@drawable/md2"
Android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"
tools:ignore="ContentDescription"
/>
<!-- Normal Imageview. Nothing interesting -->
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="168dp"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
/>
<!-- The toolbar is styled normally. However we disable the title also in code.
Toolbar height is the main component that determines the collapsed height -->
<TextView
Android:text="@string/app_name"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom"
Android:background="?attr/colorPrimaryDark"
Android:paddingLeft="72dp"
Android:paddingRight="0dp"
Android:paddingBottom="24dp"
Android:paddingTop="24dp"
Android:textColor="@Android:color/white"
Android:textAppearance="@style/TextAppearance.AppCompat.Headline"
/>
<!-- The title textView -->
</Android.support.design.widget.CollapsingToolbarLayout>
L'activité associée ressemble à ceci:
...
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Disable toolbar title
getSupportActionBar().setDisplayShowTitleEnabled(false);
...
Voici une vidéo de l'interaction
J'ai rencontré le même problème.
Tout d'abord, je viens de définir la hauteur de la barre d'outils comme décrit dans les réponses précédentes et cela fonctionne.
Mais cela a conduit à un autre problème. La vue de la barre d'outils contient des événements tactiles, donc ma vue réduite (qui est MapView) ne prend aucun événement tactile dans sa partie chevauchée par la barre d'outils.
Enfin, ma solution consiste à supprimer la barre d'outils de CollapsingToolbarLayout. Dans mon cas, c'est OK car je ne l'ai utilisé que pour limiter l'effondrement. Et pour définir la hauteur minimale de repli dans onCreateView comme ceci:
CollapsingToolbarLayout layoutCollapsing = (CollapsingToolbarLayout) rootView.findViewById(R.id.layoutCollapsing);
layoutCollapsing.setMinimumHeight(120);
Ajoutez simplement la hauteur d'arrêt souhaitée à votre barre d'outils et définissez app:contentScrim="#00000000"
pour votre CollapsingToolbarLayout.
<Android.support.design.widget.CollapsingToolbarLayout
Android:id="@+id/collapsing_toolbar"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:contentScrim="#00000000"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
Android:id="@+id/ImageView"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:src="@drawable/image"
app:layout_collapseMode="parallax"/>
<Android.support.v7.widget.Toolbar
Android:layout_width="match_parent"
Android:layout_height="100dp"
/> <!-- set desired stop-height as height -->
</Android.support.design.widget.CollapsingToolbarLayout>