После прочтения большой части официальной документации по Android у меня возникли проблемы с настройкой панели приложений без с использованием объекта панели инструментов .Как ни странно, эта официальная страница в меню ссылается на использование объекта панели инструментов в методе onCreate ().Хотя я получил панель инструментов для работы в недавнем прошлом, мне не нужна дополнительная гибкость / настройка объекта панели инструментов, и вместо этого я предпочитаю использовать различные XML-файлы меню для своей деятельности. Проблема в : мой код для меню опций не создает никаких панелей приложений ... он создает только пустой белый экран с панелью задач (батарея / панель времени) сверху.
Общие замечания: я не ищу поддержку старых SDK (<7).Кроме того, телефон, который я использую (LG Stylo3 7.0), не имеет аппаратной кнопки меню.<strong> Я стремлюсь поддержать minSdkVersion 21 с targetSdkVersion 28. Я также не расширяю фрагмент.У меня есть много других записанных действий, хотя их содержимое недоступно без надлежащей навигации по меню.
Я написал следующий код / ресурсы:
app / [package] /MainActivity.java
package [package];
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;
import [package].R;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
Примечание : я попытался вызвать super в onCreateOptionsMenu (), а также вызвать его в операторе return.Я также попытался расширить AppCompatActivity вместо Activity, но я не ищу поддержки ранних версий SDK.Я поместил точки останова в onCreateOptionsMenu (), и инструмент отладки не останавливается здесь.Возможно onCreateOptionsMenu () не вызывается из onStart ()?
res / menu / main_menu.xml
<menu 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"
tools:context=".MainActivity" >
<item android:id="@+id/action_servers"
android:icon="@drawable/ic_action_server"
android:title="@string/action_server"
app:showAsAction="ifRoom" />
<item android:id="@+id/action_settings"
android:icon="@drawable/ic_action_settings"
android:title="@string/action_settings"
app:showAsAction="ifRoom"/>
</menu>
Примечание :AndroidStudio может просматривать этот xml без каких-либо проблем.
res / layout / activity_main.xml
<androidx.constraintlayout.widget.ConstraintLayout
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:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- Some commented out stuff for now -->
</androidx.constraintlayout.widget.ConstraintLayout>
Примечание : я имеюсоздал объект панели инструментов в этом макете, до которого работает только этот вопрос не о панелях инструментов.AndroidStudio позволяет мне предварительно просмотреть это, и это пустой экран.
AndroidManifest.xml
<application
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Примечание : я пробовалразличные андроид: темы с / без ActionBar в res / values / styles.xml ... в частности: (Theme.AppCompat.Light.DarkActionBar и Theme.AppCompat.NoActionBar).Первая тема приводит к пустому белому экрану, вторая - к темно-серому.
Сообщите мне, нужны ли другие файлы, которые я пропустил, для дальнейшей диагностики.Моя гипотеза заключается в том, что это связано с используемым ограничением Layout.
Эти страницы, на которые я смотрел, не помогли решить мою проблему:
- Реализация меню параметров в Android Studio
- Добавление меню в пустое занятие
- Упражнение не имеет меню опций - Не желая использовать панель инструментов!
- как отобразить меню параметров при запуске действия