如何将 ActionBar 添加到已经扩展了 ListActivity 的 activity?
How to add ActionBar to an activity which already extends ListActivity?
我有一个 Activity 扩展 ListActivity
.
我可以在不扩展 ActionBarActivity
的情况下添加 ActionBar
吗?
您可以使用 工具栏:将 AppCompat 工具栏添加到您的 Activity 布局。
教程(转到操作栏):http://android-developers.blogspot.fr/2014/10/appcompat-v21-material-design-for-pre.html
文档 : https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
在styles.xml中使用全息主题因为只有在全息之后才能使用ActionBar
使用这个:
<style name="AppTheme" parent="android:Theme.Holo">
您可以使用支持库提供的新 AppCompatDelegate 组件。
ActionBar 现已弃用,您应该使用 Toolbar
以符合 Material 设计。您可以使用支持库提供的工具栏。
像这样将其添加到您的 xml 布局中:
<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"
/>
请务必在 styles.xml 中使用 NoActionBar
主题。使用 Material 设计颜色标签。
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
然后,在 OnCreate() 中将 AppCompatDelegate
添加到您的 Activity,就像这样。
@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);
}
注意: 要创建 AppCompatDelegate,您需要传递 Activity 本身和一个回调,最好的做法是在 Activity 中实现回调,但出于缩短的原因,我在 onCreate() 中创建了一个实例。
我有一个 Activity 扩展 ListActivity
.
我可以在不扩展 ActionBarActivity
的情况下添加 ActionBar
吗?
您可以使用 工具栏:将 AppCompat 工具栏添加到您的 Activity 布局。
教程(转到操作栏):http://android-developers.blogspot.fr/2014/10/appcompat-v21-material-design-for-pre.html
文档 : https://developer.android.com/reference/android/support/v7/widget/Toolbar.html
在styles.xml中使用全息主题因为只有在全息之后才能使用ActionBar
使用这个:
<style name="AppTheme" parent="android:Theme.Holo">
您可以使用支持库提供的新 AppCompatDelegate 组件。
ActionBar 现已弃用,您应该使用 Toolbar
以符合 Material 设计。您可以使用支持库提供的工具栏。
像这样将其添加到您的 xml 布局中:
<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"
/>
请务必在 styles.xml 中使用 NoActionBar
主题。使用 Material 设计颜色标签。
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
然后,在 OnCreate() 中将 AppCompatDelegate
添加到您的 Activity,就像这样。
@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);
}
注意: 要创建 AppCompatDelegate,您需要传递 Activity 本身和一个回调,最好的做法是在 Activity 中实现回调,但出于缩短的原因,我在 onCreate() 中创建了一个实例。