我使用了Suyash的How do I use DrawerLayout to display over the ActionBar/Toolbar and under the status bar? answer (我还添加了一个工具栏,可能有误),将导航抽屉放在“操作栏”上。
对于API level 21而不是"action bar“,我使用了工具栏,它工作得很好。
但对于API 19,这是不起作用的:
if(Build.VERSION.SDK_INT > 19) {
final Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
}
你知道如何将NavigationDrawer放在API19级的"actionbar“(或工具栏)之上吗?
发布于 2015-03-15 08:58:09
如果您使用工具栏,那么您应该能够在任何API中查看完全相同的工具栏。
要做到这一点,你应该在res/layout中有一个XML:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"/>
在你的主布局中,你应该包括它:
<include
android:id="@+id/app_bar"
layout="@layout/app_bar" />
你也应该在你的styles.xml上将你的样式设置为无动作栏
<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
</style>
但是对于API21,你应该有另一个styles.xml:
<style name="AppTheme" parent="AppTheme.Base">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primaryDark</item>
<item name="android:colorAccent">@color/accent</item>
</style>
最后,在你的主要活动中
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
最后,对于你想要对工具栏做的任何事情,获取它并像对待旧的Action Bar一样对待它:
getSupportActionBar().setHomeAsUpEnabled(true);
发布于 2019-06-24 02:49:21
首先,您需要添加com.android.support:appcombat v7:25.3.0作为依赖项。然后将android.support.v7.widget.Toolbar导入到要添加工具栏的活动中。通过这种方式,您可以实现api 19的工具栏。
https://stackoverflow.com/questions/29055491
复制相似问题