web-dev-qa-db-fra.com

Nouveau bug de la bibliothèque de conception Android avec AppBarLayout et la barre d'outils

J'utilise la nouvelle bibliothèque de conception Android basée sur cet exemple chrisbanes/cheesesquare dans github et ici

J'ai exécuté l'exemple et j'ai des problèmes avec la barre d'outils dans CheeseDetailActivity. La barre d'outils n'est pas affichée comme il se doit. Regardez les images ci-dessous:

À la première image, vous pouvez voir que la barre d’outils ne s’affiche pas correctement.

enter image description here

Sur la deuxième image, vous pouvez voir que la barre d’outils est affichée correctement mais que la barre de notification est blanche. Ceci est dû au fait que j'ai supprimé actiivty_detail.xml Android:fitsSystemWindows="true" de Android.support.design.widget.CoordinatorLayout 

enter image description here

Je pense que fitsSystemWindows devrait être vrai et que le problème est lié à Android.support.design.widget.AppBarLayout mais je ne sais pas du tout comment résoudre ce problème. J'ai essayé avec marginTop avec la même hauteur que notificationBar mais cela n'a pas fonctionné.

Toute suggestion est appréciée :)

Ceci est une partie du activity_detail.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:id="@+id/main_content"
    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="@dimen/detail_backdrop_height"
    Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    Android:fitsSystemWindows="true">

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

        <ImageView
            Android:id="@+id/backdrop"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:scaleType="centerCrop"
            Android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax" />

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_collapseMode="pin" />

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

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

Modifiez votre fichier Design Library} _ avec la nouvelle version build.gradle dans le dossier app comme suit:

compiler 'com.Android.support:design:22.2.1'

Comme mis à jour dans + AndroidDevelopers

Je suis sortie comme:

enter image description here

Cela vous aidera.

Merci :) 

18
Pratik Butani

eu le même problème mis en style avec windowActionBar et windowNoTitle et a décidé mon problème.

<style name="AppTheme.base" parent="Base.Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
       <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
1
Levi Saturnino

J'ai eu le même problème, ma barre d'outils affichait un niveau d'API supérieur à 21. J'utilisais Android.support.v7.widget.Toolbar comme supportActionBar () et le contenu ci-dessous est fragmenté, voir les images: sur l'application démarrer, la barre d’outils ne s'affiche pas correctement et lorsque je tombe sur Android.support.design.widget.CollapsingToolbarLayout, l’image n’est pas complètement masquée

J'ai résolu ce problème lorsque j'ai ajouté Android: fitsSystemWindows = "true" attribut à l'élément de vue racine où la barre d'outils est située.

Maintenant: la barre d’outils affiche les images normales et est complètement masquée

0
Đorđe Trbović

Voici quelques solutions de contournement pour l’API 21:

 if (Build.VERSION.SDK_INT == Build.VERSION_CODES.Lollipop) {
    marginResult = 0;
    int resourceId = getResources().getIdentifier(getString(R.string.identifier_status_bar_height), getString(R.string.identifier_dimen), getString(R.string.identifier_Android));    
    if (resourceId > 0) {
        marginResult = getResources().getDimensionPixelSize(resourceId)*2;
     }
    CollapsingToolbarLayout.LayoutParams params = (CollapsingToolbarLayout.LayoutParams) mToolbar.getLayoutParams();
    params.topMargin -= marginResult;
    mToolbar.setLayoutParams(params);}
0
Penzzz