Wenn Sie es verwendet AppCompatActivity
haben und den Weg gegangen sind, es nicht zu verwenden, weil Sie nicht die Automatik erhalten ActionBar
möchten, die es bietet, weil Sie das Toolbar
aufgrund Ihrer Materialdesign-Anforderungen trennen möchten, und CoordinatorLayout
oder AppBarLayout
dann Folgendes berücksichtigen:
Sie können das weiterhin verwenden AppCompatActivity
, Sie müssen es nicht beenden, nur damit Sie ein <android.support.v7.widget.Toolbar>
in Ihrer XML verwenden können. Schalten Sie einfach den Stil der Aktionsleiste wie folgt aus:
Leiten Sie zunächst einen Stil aus einem der NoActionBar-Themen ab, die Sie in Ihrem Thema mögen styles.xml
. Ich habe es Theme.AppCompat.Light.NoActionBar
so verwendet:
<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/primary_dark</item>
...
...
</style>
Wählen Sie im Manifest Ihrer App das soeben definierte untergeordnete Thema aus:
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
Wenn in Ihrer Aktivitäts-XML die Symbolleiste wie folgt definiert ist:
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
Dann, und dies der wichtigste Teil ist, Sie setzen die Unterstützung Aktionsleiste auf die AppCompatActivity , dass Sie erstreckt, so dass die Symbolleiste in Ihrem xml, wird die Bar Aktion. Ich bin der Meinung, dass dies ein besserer Weg ist, da Sie einfach die vielen Dinge tun können, die ActionBar zulässt, wie Menüs, automatische Aktivitätstitel, Handhabung der Elementauswahl usw., ohne benutzerdefinierte Klick-Handler usw. hinzufügen zu müssen.
Gehen Sie in der onCreate-Überschreibung Ihrer Aktivität wie folgt vor:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_super_cool);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Your toolbar is now an action bar and you can use it like you always do, for example:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}