Intereting Posts
InstallLocation идентификатор не найден в пакете Android eclipse Не удается запустить Android Emulator: «Невозможно загрузить VM из моментального снимка» Как изменить цвет пузырька EditText (под курсором) в android? Не удалось получить доступ к диспетчеру пакетов. Это система, работающая при установке приложения для Android Загрузка изображений в фоновом режиме при показе списка NDK: ли GetByteArrayElements копирует данные с Java на C ++? OnEditorActionListener вызывается дважды с одним и тем же событием на клавиатуре SenseUI Как правильно защитить приложение, которое использует покупки в приложении и локальную базу данных Чтение данных из тега NFC (IsoDep) Фрагмент реализует OnClickListener Изменение ориентации в сотах Как написать / предотвратить запись в буфер глубины OpenGL в GLSL Почему я хочу избегать конструкторов не по умолчанию в фрагментах? Возврат результата цели, когда активность закрыта кнопкой «Назад» Как удалить вид, когда заканчивается анимация?

Используйте панель инструментов для всех видов деятельности (Android)

Я использую панель инструментов для замены ActionBar. Все идет хорошо с одной проблемой:

Панель инструментов отображает только основное действие.

Если я попытаюсь вызвать панель инструментов на любом мероприятии так же, как я сделал с основной деятельностью, приложение сработает, когда я вызову эту активность.

Если я попытаюсь раздуть панель инструментов onCreateOptionsMenu, это действие сработает, когда я его вызову.

Как я могу вызвать / использовать ту же самую панель инструментов для всех своих действий, а не только для основной.

Вот некоторые фрагменты кода:

public android.support.v7.widget.Toolbar toolbar; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_id); setSupportActionBar(toolbar); } 

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

Помогите пожалуйста?

Спасибо.

Отредактировано:

По запросу здесь больше фрагментов кода:

App_bar.xml:

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/actionbarbgcolor" app:popupTheme="@style/popUpTheme"> </android.support.v7.widget.Toolbar> 

Themes.xml (замена styles.xml):

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"> <style name="DefaultActionBarTheme" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:textColorPrimary">@color/windowbackgroundcolor</item> <item name="android:windowBackground">@color/windowbackgroundcolor</item> </style> <style name="popUpTheme"> <item name="android:textColor">@color/actionbarbgcolor</item> </style> </resources> 

Solutions Collecting From Web of "Используйте панель инструментов для всех видов деятельности (Android)"

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

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

Для начинающих это означает, что в каждом XML-файле макета, который вы хотите, чтобы панель инструментов работала, должен существовать следующий код:

 <include layout="@layout/app_bar"/> 

Обратите внимание, что «app_bar» – это просто имя, которое я назвал своей панелью инструментов, у вас могут быть разные.

Удачи.

Вы можете создать макет с последующим кодом, содержащим панель инструментов

 <?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="wrap_content" android:fitsSystemWindows="true" tools:context="com.tejariapp.myapplicationtester1.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> </android.support.design.widget.CoordinatorLayout> 

Обратите внимание на значение высоты, если вы не установите его значение wrap_content, вы увидите, что другие элементы ушли под панелью инструментов, а затем в каждом макете, который вы хотите иметь панель инструментов, просто вы можете написать это

 <include layout="@layout/toolabar" />