Ich möchte ToolBar
stattdessen verwenden ActionBar
, aber zeige mir kein Menü in der Symbolleiste !!! Ich möchte ein Menü wie Aktualisieren oder Einstellen von Schaltflächen in ActionBar
.
Toolbar.xml Code:
<?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="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:navigationContentDescription="@string/abc_action_bar_up_description"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:title="Main Page"
android:gravity="center"/>
MainPage.java-Code:
public class MainPage extends AppCompatActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page);
toolbar = (Toolbar) findViewById(R.id.main_toolbar);
setSupportActionBar(toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle("Main Page");
}
toolbar.setSubtitle("Test Subtitle");
toolbar.inflateMenu(R.menu.main_manu);
}
}
main_menu.xml Code:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_main_setting"
android:icon="@drawable/ic_settings"
android:orderInCategory="100"
app:showAsAction="always"
android:actionLayout="@layout/toolbar"
android:title="Setting" />
<item
android:id="@+id/menu_main_setting2"
android:icon="@drawable/ic_settings"
android:orderInCategory="200"
app:showAsAction="always"
android:actionLayout="@layout/toolbar"
android:title="Setting" />
</menu>
Wie behebe ich dieses Problem und zeige das Menü in Toolbar
? Vielen Dank an alle Lieben <3
Android Studio
und checken Sie sie aus. `ToolBar 'sollte keine unabhängige Einheit sein.Antworten:
Überschreiben Sie einfach onCreateOptionsMenu wie folgt in Ihrer MainPage.java
quelle
Verwenden Sie nicht setSupportActionBar (Symbolleiste)
Ich weiß nicht warum, aber das funktioniert bei mir.
Klicken Sie für den Menüpunkt auf dies
quelle
Hier finden Sie eine ausführlichere Antwort als Hinweis auf zukünftige Besucher. Normalerweise verwende ich eine Support-Symbolleiste, aber sie funktioniert in beiden Fällen genauso gut.
1. Erstellen Sie eine Menü-XML
Das wird in sein
res/menu/main_menu
.res
Ordner und wählen Sie Neu> Android-Ressourcendatei .main_menu
den Dateinamen ein.Fügen Sie als Starter den folgenden Inhalt ein.
Sie können mit der rechten Maustaste klicken
res
und Neues Bildelement auswählen , um dasic_add
Symbol zu erstellen .2. Blasen Sie das Menü auf
Fügen Sie in Ihrer Aktivität die folgende Methode hinzu.
3. Behandeln Sie Menüklicks
Fügen Sie in Ihrer Aktivität die folgende Methode hinzu:
Weiterführende Literatur
quelle
Sie müssen diesen Code in Ihrer Aktivität überschreiben:
und stellen Sie Ihre Symbolleiste folgendermaßen ein:
quelle
Außerdem benötigen Sie dies, um eine Aktion für alle Menüoptionen zu implementieren.
quelle
Obwohl ich dieser Antwort zustimme, da sie weniger Codezeilen enthält und funktioniert:
So stellen Sie das Menü in Android auf Symbolleiste ein
Mein Vorschlag wäre, jedes Projekt immer mit dem Android Studio-Assistenten zu starten. In diesem Code finden Sie einige Stile: -
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
und Verwendung ist:
Aufgrund der
no action bar theme
deklarierten instyles.xml
, die auf dieMain Activity
in der angewendet wirdAndroidManifest.xml
, gibt es keine Ausnahmen, so dass Sie es dort überprüfen müssen.Toolbar
ist keine unabhängige Entität, es ist immer eine untergeordnete Ansicht, inAppBarLayout
der wiederum das Kind von istCoordinatorLayout
.BEIDE:
Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar);
UND:
So stellen Sie das Menü in Android auf Symbolleiste ein
WIRD FUNKTIONIEREN.
Viel Spaß beim Codieren :-)
quelle
Überschreiben Sie in Ihrer Aktivität diese Methode.
Dadurch wird Ihr Menü unten aufgeblasen:
quelle
In meinem Fall verwende ich ein AppBarLayout mit einem CollapsingToolbarLayout und das Menü wurde immer vom Bildschirm gescrollt. Ich habe mein Problem gelöst, indem ich android: actionLayout im XML des Menüs auf die ID der Symbolleiste umgestellt habe. Ich hoffe, es kann Menschen in der gleichen Situation helfen!
activity_main.xml
main_menu.xml
quelle
Einfache Lösung , um diese einstellt
showAsAction
zualways
inmenu.xml
in res / Menüquelle
res / layout / drawer_menu
toolbar.xml
quelle
Nun, Sie müssen die Support-Aktionsleiste setSupportActionBar () festlegen. und übergeben Sie Ihre Variable wie folgt:
setSupportActionBar(toolbar);
quelle
Fügen Sie in XML eine Zeile hinzu
<Toolbar/>
Ersetzen Sie in der Java-Datei Folgendes:
mit diesem:
quelle