J'ai la disposition suivante:
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
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/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.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:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</android.support.design.widget.CoordinatorLayout>
J'ajoute des Fragment
s dans le FrameLayout
, en les remplaçant. L'un de mes Fragment
s est une liste, qui a la disposition suivante:
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
Mon problème ici est que la barre d'outils est dessinée sur la liste . J'ai essayé de résoudre cela en enveloppant le contenu de l ' CoordinatorLayout
dans un LinearLayout
, qui a résolu l'overdraw, mais de cette façon, le comportement de défilement de la barre d'application ne fonctionne plus.
Toute aide est très appréciée!
Fragment
contenant par une liste par une autreFragment
. J'ai réussi à afficher manuellement la barre d'outils de cette façon.J'ai réussi à résoudre ce problème en ajoutant:
au FrameLayout comme ceci:
la source
android:layout_marginTop="?android:attr/actionBarSize"
Depuis Android studio 3.4, vous devez mettre cette ligne dans votre mise en page qui contient le fichier
RecyclerView
.la source
Pour utiliser la barre d'outils supérieure réduite ou utiliser ScrollFlags de votre choix, nous pouvons faire de cette façon: À partir de Material Design, débarrassez-vous de FrameLayout
la source