Новая ошибка библиотеки дизайна Android с AppBarLayout и панелью инструментов
я использую новую библиотеку дизайна Android на основе этого примера chrisbanes / cheesesquare в github и здесь
я запустил пример, и у меня возникли проблемы с панелью инструментов внутри CheeseDetailActivity. Панель инструментов отображается не так, как должна. Посмотрите на изображения ниже:
на первом изображении вы видите, что панель инструментов отображается неправильно.
На втором изображении вы можете увидеть, что панель инструментов отображается правильно, но панель уведомлений белая. Это происходит потому, что я удалил из actiivty_detail.в XML android:fitsSystemWindows="true"
С android.support.design.widget.CoordinatorLayout
думаю, что 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
Я получил выходной, как:
Это поможет вам.
спасибо :)
похоже, это ошибка в 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 и изображение скрыто полностью