Wie bieten navigation mit der Symbolleiste die home-Schaltfläche auf der toolbar v7
Habe ich eine Symbolleiste in meine Tätigkeit ( import android.support.v7.widget.Toolbar;
) und ich bin versucht, navigation mit seiner home-Taste. Was ich habe:
Manifest:
<!-- ... -->
<activity android:name=".SettingsActivity"
android:label="@string/settings"
android:parentActivityName=".MainActivity"/>
<!-- ... -->
view_toolbar.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:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp">
</android.support.v7.widget.Toolbar>
activity_settings.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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Toolbar -->
<include
layout="@layout/view_toolbar" />
<!-- ... -->
meiner onCreate Methode:
super.onCreate(bundle)
setContentView(R.layout.activity_settings);
//Set the toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
So weit, ich sollte nicht haben eine Taste, und ich nicht. Wir sind also in Ordnung. Aber als ich versuchte, um es hinzuzufügen, ich konnte nicht.
Zuerst habe ich versucht, dieses:
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Nicht funktioniert hat.
Dann habe ich versucht, dieses (wie gezeigt hier):
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ToolbarActivity.this, "Up clicked",
Toast.LENGTH_SHORT).show();
NavUtils.navigateUpFromSameTask(ToolbarActivity.this);
}
});
Ich habe sogar versucht einen workaround, ich sah, irgendwo, darunter die Erstellung einer dummy-Menü und zu versuchen, das Ereignis aus onOptionsItemSelected
(das ist nie als die Art und Weise).
Was kann ich tun? Was ist der richtige Weg, um Up-navigation über toolbar?
Welche Klasse erstreckt sich Ihre Tätigkeit?
AppCompatActivity
Haben Sie eine Lösung für Ihr Problem? Ich bin mit der gleichen Sache. Für mich ist die Zurück-Taste oder home-Symbol nicht rufen
onOptionMenuSelected
weder Fragment noch in der Tätigkeit.Was
onOptionsItemSelected
?? Eh.. Die Grundidee ist, fangen die Veranstaltung von android.R.id.home
- Taste und finish()
Ihre Tätigkeit dort. Versuchen Sie, "Daniel Martin Schum"'s Antwort weiter unten. Was er sagt ist richtig, auch wenn es nicht mein problem zu lösen in der Zeit.InformationsquelleAutor TheCrafter | 2015-12-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie den code unten, um Ihre Symbolleiste als Standard-Aktivität actionbar?
Hast du nicht ein Bild-Symbol, um die home-Taste, vielleicht zeigt es sich, aber Sie können es nur nicht sehen.
und wie @Gonzalo sagte, müssen Sie auch überschreiben Sie die menu select-Ereignis behandeln die home-button-onClick-Ereignis
warum hast du eine appbarlayout enthalten die toolbar?
Mehr actionbar implementieren, details bitte haben Sie einen Blick auf meine github-Projekt, hoffe, es kann helfen:
java-code
https://github.com/DanielShum/MaterialAppBase/blob/master/materialAppBaseLibrary/src/main/java/com/daililol/material/appbase/base/BaseActionbarActivity.java
xml-code
https://github.com/DanielShum/MaterialAppBase/blob/master/materialAppBaseLibrary/src/main/res/layout/base_actionbar_activity.xml
appbarlayout
aber es hat nicht funktioniert. Auch das zurück-Symbol erscheint. Ich sehe es normalerweise aber meine drücken hat keine Wirkung.InformationsquelleAutor Daniel Martin Shum
1 - stellen Sie Ihre Symbolleiste
Toolbar toolbar = findViewById(R.id.toolbar);
2 - setup-Symbol
3 - überschreiben Sie diese Methode,
InformationsquelleAutor Bishoy Abd
Können Sie es so machen.
Wenn Sie möchten, verwenden Sie die Symbolleiste, sollten Sie Ihre Aktivität noactionbar Stil. Wie:
<style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style>
Die Symbolleiste selbst IST, zu arbeiten. Das problem mit der home-Taste. Die toolbar ist und läuft.
InformationsquelleAutor David Wong
Soweit ich weiß die zurück-Schaltfläche von der Symbolleiste behandelt wird als ein Menü-Element, so wie Sie sagen, Sie überschreiben sollten, die
onOptionsItemSelected
.onOptionsItemSelected
ist nie rufen, als ich Stand in meinem post.InformationsquelleAutor Gonzalo
Auch ich hatte dieses Problem früher. Ich vermute, es ist etwas Los mit
include
. Versuchen Sie, fügen Sie einid
auf der Symbolleiste enthalten-layout wieUnd jetzt versuchen Sie, die Symbolleiste mit
incl_toolbar
.Hoffe, das hilft.
Grüße,
Sree
InformationsquelleAutor sha
Fand ich eine einfache Möglichkeit. Funktioniert perfekt nach Erwartung.
InformationsquelleAutor Tara