Intereting Posts
ClassCastException: android.support.v7.widget.LinearLayoutCompat $ LayoutParams нельзя отбрасывать в android.widget.LinearLayout $ LayoutParams Android ImageView Animation Пересечение с помощью Eclipse Библиотека обработки изображений для Android и Java Android: Использование findViewById () со строкой / в цикле Разрешения Android M: путают использование функции shouldShowRequestPermissionRationale () Босс говорит: «Нам нужно приложение IPhone». Какие рамки похожи на Firefox, JQuery, шаблоны и привязку данных на iPhone? Уведомление deleteIntent не работает Как исключить файл из архива библиотеки Android .AAR с помощью gradle Debug android: подключитесь к sqlite db на телефоне Список всех дополнительных компонентов Как использовать грамотное управление зависимостями Google Play Services 6.5 Постоянно скрывать строку состояния Android Использование String selectionArgs в SQLiteDatabase.query () Некоторые (но не все) пользователи получают «файл пакета не был правильно подписан» при загрузке моего приложения из Google Play

Android – Меню переполнения и кнопка «Назад» не отображаются на панели инструментов Collapsing

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

Я попытался использовать следующие методы для отображения кнопки «Назад», но ни одна из них не работает.

getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); 

И перезапись метода onCreateOptionsMenu для меню переполнения также не сработала.

Кто-нибудь знает, как добавить эти значки на панели инструментов CollapsingToolbar из библиотеки поддержки проектирования? Ниже представлен мой макет 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="256dp" 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="@color/primary" app:expandedTitleMarginStart="48dp" app:expandedTitleMarginEnd="64dp"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/headerbg" 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/Theme.AppCompat.Light.DarkActionBar" 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" android:layout_gravity="fill_vertical" android:layout_marginBottom="?attr/actionBarSize" app:layout_behavior="@string/appbar_scrolling_view_behavior"> </android.support.v4.widget.NestedScrollView> 

Solutions Collecting From Web of "Android – Меню переполнения и кнопка «Назад» не отображаются на панели инструментов Collapsing"

У меня была такая же проблема, ни одна из существующих ответов не помогла мне, неожиданное решение проблемы было в вопросе описания.


Решение для деятельности AppCompat

Таким образом, работающая сворачивающаяся панель инструментов с обратной кнопкой требует этих нескольких строк в контроллере onCreate :

 //change id to Your id toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); //this line shows back button getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Манифест этой активности (обратите внимание на атрибут parentActivityName ):

 <activity android:name=".SomeActivity" android:parentActivityName=".MainActivity" android:theme="@style/AppTheme.NoActionBar"/> 

Часть шаблона:

 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="200dp" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:contentScrim="@color/colorPrimary" android:fitsSystemWindows="true" app:expandedTitleGravity="center_horizontal" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@android:color/transparent" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> 

Альтернативное решение (также AppCompat Activity)

Контроллер onCreate :

 toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setNavigationIcon(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onBackPressed(); } }); 

Этот подход использует тот же манифест и шаблон, представленные в первом решении.

Постарайтесь не помещать это в координаторLayout. андроид: fitsSystemWindows = "истина"

Меня устраивает. Не знаю, почему. Удачи

В моем случае это работает! app:layout_collapseMode="pin" внутри макета панели инструментов

Следующее включает кнопку навигации:

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp, null)); toolbar.setNavigationOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //onBackPressed() } }); 

Чтобы получить поведение меню переполнения, вы должны объявить файл menu.xml с помощью showAsAction: никогда не применялись к вашим пунктам меню, например:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_one" android:title="action 1" android:orderInCategory="1" app:showAsAction="never"/> <item android:id="@+id/action_two" android:title="action 2" android:orderInCategory="2" app:showAsAction="never"/> </menu> 

И раздуйте его так:

 toolbar.inflateMenu(R.menu.main); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.action_one: break; case R.id.action_two: break; } return true; } }); 

Измените это ..

  <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:elevation="15dp" android:layout_width="match_parent" app:logo="@drawable/action_bar_logo" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> 

PopupTheme делает разницу, и это то, что вы искали.

Это мой полный xml

 <?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".AddUser"> <android.support.design.widget.AppBarLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:elevation="15dp" android:layout_width="match_parent" app:logo="@drawable/action_bar_logo" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_add_user" /> </android.support.design.widget.CoordinatorLayout> 

Удачи!

Change app: layout_collapseMode = "parallax" в app: layout_collapseMode = "pin" в imageView. Надеюсь, это сработает для вас

Если u не добавил тег parentActivityName в файл манифеста, сделайте это, добавив следующие строки кода как

 <activity android:name=".Activity.MovieData" android:parentActivityName=".Activity.Home"> </activity> 

Где «Activity» – это мое имя пакета «MovieData» – это мое название деятельности «Главная» – это мое название деятельности назначения

EDIT: Если вы поддерживаете уровень андроида авика 15 и ниже, то parentActivityName не будет работать.

Для поддержки более низких версий вам нужно добавить тег метаданных в качестве

 <meta-data android:name="PARENT_ACTIVITY" android:value="com.example.Activity.Home"/>