Ich habe eine Aktivität, die ListActivity
erweitert.
Kann ich ein ActionBar
hinzufügen, ohne zu erweitern ActionBarActivity
?Wie fügt man ActionBar zu einer Aktivität hinzu, die ListActivity bereits erweitert?
Antwort
Sie kann die neue Komponente AppCompatDelegate verwenden, die von der Support-Bibliothek bereitgestellt wird.
ActionBar ist jetzt veraltet und Sie sollten eine Toolbar
verwenden, um Material Design zu entsprechen. Sie können die von der Support-Bibliothek zur Verfügung gestellte Toolbar verwenden.
es zu einem XML-Layout wie folgt hinzufügen:
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="56dp"
android:background="?attr/colorPrimary"
/>
Seien Sie sicher, ein NoActionBar
Thema in Ihrem styles.xml zu verwenden. Verwenden Sie die Material Design-Farbmarken.
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
Dann fügen Sie die AppCompatDelegate
auf Ihre Aktivität, in OnCreate(), wie diese.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppCompatCallback callback = new AppCompatCallback() {
@Override
public void onSupportActionModeStarted(ActionMode actionMode) {
}
@Override
public void onSupportActionModeFinished(ActionMode actionMode) {
}
};
AppCompatDelegate delegate = AppCompatDelegate.create(this,callback);
delegate.onCreate(savedInstanceState);
delegate.setContentView(R.layout.activity_main);
Toolbar toolbar= (Toolbar) findViewById(R.id.my_awesome_toolbar);
delegate.setSupportActionBar(toolbar);
}
Hinweis: ein AppCompatDelegate Sie brauchen So erstellen Sie die Aktivität selbst und einen Rückruf zu passieren, sollte eine gute Praxis, den Rückruf in Ihrer Aktivität umsetzen, aber aus Gründen verkürzt habe ich eine Instanz in onCreate().
Sie können eine Symbolleiste verwenden: Fügen Sie Ihrem Aktivitätslayout eine AppCompat Toolbar hinzu.
Tutorial (gehen Sie zu ActionBar): http://android-developers.blogspot.fr/2014/10/appcompat-v21-material-design-for-pre.html
Dokumentation: https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
Verwenden Holo Themen in styles.xml Weil du das ActionBar erst nach holo
Gebrauch verwenden können:
<style name="AppTheme" parent="android:Theme.Holo">
posten Sie Ihre styles.xml – codevscolor
Bitte hier sehen, ich denke, das ist Lösung: http://stackoverflow.com/questions/18532346/adding-actionbar-to-listactivity –