Afficher le contenu sous la barre d'outils
Bonjour, je suis d'essayer de simplement mettre mon contenu en dessous de la barre d'outils, mais pour le moment, quand je lance mon application, une partie du contenu est caché derrière elle alors qu'elle devrait être en dessous.
J'ai lu sur l'utilisation d'un cadre de mise en page pour tenter de les séparer mais je me suis un peu coincé. Je suis actuellement en utilisant une base d'android studio de navigation tiroir gabarit fourni avec le logiciel et je me demandais ce que les changements que j'ai à faire.
Mon coordonnateur de la mise en page
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.design.widget.CoordinatorLayout>
Mon tiroir à disposition
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
Quels changements dois-je faire?
- recherche pour redimensionner shrink/ mise à l'échelle vers le haut/vers le bas d'un point de vue sous l'effondrement de la barre d'outils. absolue de la douleur dans le cul.
InformationsquelleAutor james | 2016-04-24
Vous devez vous connecter pour publier un commentaire.
De nombreux ViewGroups permettre à leurs enfants de se chevaucher. Ces inclure FrameLayout, RelativeLayout, CoordinatorLayout, et DrawerLayout. Celui qui ne permet pas à ses enfants de chevauchement est LinearLayout.
La réponse à votre question dépend vraiment de ce que le résultat final devrait être. Si vous essayez d'avoir une Barre d'outils qui est toujours sur l'écran et une partie du contenu ci-dessous, alors vous n'avez pas besoin d'un CoordinatorLayout et AppBarLayout à tous, vous pouvez simplement utiliser un vertical LinearLayout avec deux enfants:
Note de présentation des attributs de la FrameLayout.
Si vous voulez faire de la fantaisie, où la barre d'outils défile sur et hors de l'écran pour faire défiler le contenu, alors vous avez besoin d'un AppBarLayout et vous devez donner à votre zone de contenu d'un attribut spécial comme ceci:
Ajouter ce code à votre image tag
Comme @Brian Hoang et @Karakuri, a déclaré à l'aide de la layout_behaviour propriété:
semble être une très bonne solution. Même si vous n'avez pas d'animations pour le moment, mais vous prévoyez d'avoir dans l'avenir, alors vous pouvez toujours garder le CoordinatorLayout et un AppBarLayout dans le cas où vous souhaitez ajouter des animations à l'avenir.
Ce que la propriété ne semble faire en général à partir de ma compréhension, est de calculer la hauteur de l'ensemble de la AppBarLayout composant de l'INTERFACE utilisateur. Le composant de l'INTERFACE utilisateur qui utilise le layout_behaviour propriété avec le @string/appbar_scrolling_view_behaviour sera automatiquement affiché exactement en dessous de la AppBarLayout indépendamment de ce que la hauteur est.
De cette façon, il n'est pas nécessaire de coder en dur des marges dans l'INTERFACE utilisateur qui est censé être sous la AppBarLayout.
Dans le code ci-dessous la include_app_bar_with_tabs_layout (AppBarLayout) a une hauteur fixe de 200dp (il peut être wrap_content ou quoi que ce soit d'autre). Puis le RelativeLayout qui contient le contenu de l'écran utilise la layout_behaviour propriété.
Ont un oeil sur le code et l'INTERFACE utilisateur de l'image ci-dessous: