Подтвердить что ты не робот

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

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

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

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

enter image description here

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

enter image description here

Я думаю, что fitsSystemWindows должен быть правдой, и проблема связана с 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>
4b9b3361

Ответ 1

Измените свою библиотеку Design Design с новой версией build.gradle в папке app, например:

compile 'com.android.support:design:22.2.1'

Как обновлено в +AndroidDevelopers

Я получил вывод как:

enter image description here

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

Спасибо:)

Ответ 3

была та же проблема, что и стиль 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>

Ответ 4

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

Ответ 5

У меня была такая же проблема, моя панель инструментов отображалась неправильно на уровне API больше 21. Я использовал android.support.v7.widget.Toolbar как supportActionBar(), а ниже содержимое находится в фрагменте, см. фотографии: при запуске приложения, панель инструментов отображается неправильно и когда я обойдусь android.support.design.widget.CollapsingToolbarLayout, изображение полностью не скрыто

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

Сейчас: панель инструментов отображается нормально и снимок полностью скрыт