Новая ошибка библиотеки дизайна Android с AppBarLayout и панелью инструментов

я использую новую библиотеку дизайна Android на основе этого примера chrisbanes / cheesesquare в github и здесь

я запустил пример, и у меня возникли проблемы с панелью инструментов внутри CheeseDetailActivity. Панель инструментов отображается не так, как должна. Посмотрите на изображения ниже:

на первом изображении вы видите, что панель инструментов отображается неправильно.

enter image description here

На втором изображении вы можете увидеть, что панель инструментов отображается правильно, но панель уведомлений белая. Это происходит потому, что я удалил из actiivty_detail.в XML android:fitsSystemWindows="true" С android.support.design.widget.CoordinatorLayout

enter image description here

думаю, что fitsSystemWindows должно быть true, и проблема связана с android.support.design.widget.AppBarLayout но я понятия не имею, как я могу решить эту проблему. Я пробовал с marginTop С той же высоты, что и notificationBar но это не сработало.

любое предложение приветствуется:)

это часть 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>

5 ответов


изменить Библиотека С новой версией построить.Gradle в на app как:

compile ' com.андроид.поддержка:дизайн:22.2.1'

по состоянию на + AndroidDevelopers

Я получил выходной, как:

enter image description here

Это поможет вам.

спасибо :)


похоже, это ошибка в com.android.support:design:22.2.0. Он будет исправлен, помечен как будущий релиз. Так что будем надеяться, что скоро. Связи с вопросами: https://code.google.com/p/android/issues/detail?id=175240 и https://code.google.com/p/android/issues/detail?id=175069


имел ту же проблему, поставленную в стиле windowActionBar и windowNoTitle и решил мою проблему.

<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>

вот некоторые рабочие обходные пути для 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);}

У меня была такая же проблема, моя панель инструментов отображалась неправильно на уровне API больше 21. Я использовал android.поддержка.В7.штучка.Панели инструментов, как supportActionBar() и ниже содержание фрагмента, см. фото: при запуске приложения панель инструментов отображается неправильно и когда я colapse android.поддержка.дизайн.штучка.CollapsingToolbarLayout, изображение не скрыто полностью

Я решил это, когда я добавил android: fitssystemwindows=атрибут"true" для корневого элемента представления, где находится панель инструментов.

теперь: панель инструментов отображает normal и изображение скрыто полностью