Intereting Posts
Открытие фонарика в Android с различными режимами Какое знание / экспертиза требуется для переноса андроида на пользовательское устройство ручного управления? Fragment.onCreateView вызывает исключение нулевого указателя Проблема в обнаружении подключения к Интернету в Android Как создать ярлык, который приводит к активности без запуска? Spinner: как узнать, был ли изменен выбор предмета программным путем или действием пользователя через пользовательский интерфейс Календарь и PagerAdapter – Неограниченные виды Phonegap получает значения localstorage из Java-кода? Каковы преимущества и недостатки запуска службы в разных процессах? Скачать менеджер загрузки дважды Повторное использование разделяемой библиотеки рук Android Lollipop 5.1: Fatal signal 11 (SIGSEGV), код 2, ошибка addr 0x9e985ff8 in tid 4093 (RenderThread) / при использовании большого количества девяти патчей Проверка лицензии Google внезапно не срабатывает на устройстве разработки Как отключить кнопку «Очистить данные» в «Информация о приложении» для «Управление приложением» Как вернуть Boolean из @ReactMethod в React Native?

CollapsingToolbarLayout не работает должным образом

Обновление: это происходит на Android 5.0, но он отлично работает на 5.1. Я опубликовал эту проблему ( https://code.google.com/p/android/issues/detail?id=175240 ), и похоже, что она будет включена в следующий выпуск библиотеки


Поэтому я играл с новой библиотекой поддержки дизайна, и я столкнулся с некоторыми проблемами. Я думаю, что я решил большинство из них, но я не могу заставить это работать. На самом деле, даже приведенный пример не работает должным образом на моем телефоне.

Проблема в том, что при расширении панели инструментов значки слишком высоки. И когда рухнули, они просто исчезли. Смотрите скриншоты.

Я пытаюсь сделать это на Moto X с 5.0. Я знаю, что это происходит в большем количестве устройств, но на самом деле это работает на некоторых из них. Это происходит с вами? Любое известное обходное решение?

Стрелка и контекстное меню почти не отображаются на экранеИ они ушли сюда

Исправлено

com.android.support:design:22.2.1 

Я обнаружил, что это явление будет в Android 5.0 и выше

Это мой способ решить: удалить "android: fitsSystemWindows =" true "" в android.support.design.widget.CoordinatorLayout.

Как это :

 <?xml version="1.0" encoding="utf-8"?> <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.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="@dimen/detail_backdrop_height" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

Я исправляю его, используя программный запас, задавая программный набор и устанавливая андроид панели инструментов: fitsSystemWindows = "true".

В мастере 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" android:fitsSystemWindows="true" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="24dp"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/card_margin"> <LinearLayout style="@style/Widget.CardContent" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Info" android:textAppearance="@style/TextAppearance.AppCompat.Title" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cheese_ipsum" /> </LinearLayout> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/card_margin" android:layout_marginLeft="@dimen/card_margin" android:layout_marginRight="@dimen/card_margin"> <LinearLayout style="@style/Widget.CardContent" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Friends" android:textAppearance="@style/TextAppearance.AppCompat.Title" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cheese_ipsum" /> </LinearLayout> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/card_margin" android:layout_marginLeft="@dimen/card_margin" android:layout_marginRight="@dimen/card_margin"> <LinearLayout style="@style/Widget.CardContent" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Related" android:textAppearance="@style/TextAppearance.AppCompat.Title" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/cheese_ipsum" /> </LinearLayout> </android.support.v7.widget.CardView> </LinearLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:layout_height="wrap_content" android:layout_width="wrap_content" app:layout_anchor="@id/appbar" app:layout_anchorGravity="bottom|right|end" android:src="@drawable/ic_discuss" android:layout_margin="@dimen/fab_margin" android:clickable="true"/> </android.support.design.widget.CoordinatorLayout> 

На CheeseDetailActivity:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); Intent intent = getIntent(); final String cheeseName = intent.getStringExtra(EXTRA_NAME); final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); TypedValue tv = new TypedValue(); if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { int actionBarHeight = (int) (TypedValue.complexToDimensionPixelSize(tv.data, getResources().getDisplayMetrics()) - (getResources().getDimension(R.dimen.abc_action_bar_default_padding_material))*2); FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) toolbar.getLayoutParams(); layoutParams.topMargin = - (actionBarHeight / 2); toolbar.setLayoutParams(layoutParams); } setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); collapsingToolbar.setTitle(cheeseName); loadBackdrop(); } 

Результаты: http://s22.postimg.org/nnwi0mh41/initial.png http://s22.postimg.org/8cmp00js1/collapsed.png

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

Добавьте эту строку в collapsingToolBar layout: app: layout_scrollFlags = "scroll | exitUntilCollapsed"

Он будет работать

Удалить android: fitsSystemWindows = "true"