Mri*_*mar 5 android android-actionbar android-actionbaractivity
我有一个活动延伸ListActivity.
我可以添加一个ActionBar没有延伸ActionBarActivity?
您可以使用支持库提供的新AppCompatDelegate组件.
ActionBar现已弃用,您应该使用a Toolbar,以符合Material Design.您可以使用支持库提供的工具栏.
将它添加到您的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"
/>
Run Code Online (Sandbox Code Playgroud)
请务必NoActionBar在styles.xml中使用主题.使用Material Design颜色标记.
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
Run Code Online (Sandbox Code Playgroud)
然后,AppCompatDelegate在OnCreate()中添加到您的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);
}
Run Code Online (Sandbox Code Playgroud)
注意:要创建AppCompatDelegate,您需要传递Activity本身和回调,良好的做法应该是在Activity中实现回调,但为了缩短原因,我在onCreate()中创建了一个实例.