Mam działalność, która rozszerza ListActivity
.
Czy mogę dodać ActionBar
bez przedłużania ActionBarActivity
?Jak dodać ActionBar do działania, które już rozszerza ListActivity?
Odpowiedz
You może korzystać z nowego składnika AppCompatDelegate dostarczonego przez bibliotekę pomocy technicznej.
ActionBar jest już uznany za przestarzały i powinieneś używać modelu Toolbar
, aby był zgodny z Material Design. Możesz użyć paska narzędzi dostępnego w bibliotece pomocy.
Dodaj go do układu xml tak:
<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"
/>
Koniecznie używaj NoActionBar
temat w styles.xml. Użyj znaczników kolorów Material Design.
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
Następnie dodaj AppCompatDelegate
na swojej działalności, w onCreate(), tak.
@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);
}
Uwaga: Aby utworzyć AppCompatDelegate trzeba przechodzić samego działania i oddzwanianie, dobra praktyka powinna być wdrożenie zwrotnego w swojej działalności, ale na skrócenie powody stworzyłem wystąpienie w onCreate().
Możesz użyć paska narzędzi : dodaj pasek narzędzi AppCompat do swojego szablonu aktywności.
Tutorial (przejdź do ActionBar): http://android-developers.blogspot.fr/2014/10/appcompat-v21-material-design-for-pre.html
Dokumentacja: https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
Zastosowanie holo tematy w styles.xml ponieważ można używać tylko po ActionBar holo
użyj:
<style name="AppTheme" parent="android:Theme.Holo">
zamieścić swoje styles.xml – codevscolor
Proszę zobaczyć tutaj, myślę, że jest to rozwiązanie: http://stackoverflow.com/questions/18532346/adding-actionbar-to-listactivity –