tau*_*uri 8 android toolbar android-actionbar navigation-drawer
我用过如何使用DrawerLayout显示ActionBar/Toolbar和状态栏? 回答Suyash(我还添加了一个工具栏,可能不正确)将导航抽屉放在"操作栏"上.
对于API级别21而不是"操作栏"我使用了工具栏,它工作正常.
但对于API 19,这不起作用:
if(Build.VERSION.SDK_INT > 19) {
final Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
}
Run Code Online (Sandbox Code Playgroud)
您是否知道如何将NavigationDrawer放在API级别19的"操作栏"(或工具栏)上?
如果您使用工具栏,那么您应该能够在任何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"/>
Run Code Online (Sandbox Code Playgroud)
在您的主要布局中,您应该包含它:
<include
android:id="@+id/app_bar"
layout="@layout/app_bar" />
Run Code Online (Sandbox Code Playgroud)
您还应该在styles.xml上将样式设置为No Action Bar
<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>
Run Code Online (Sandbox Code Playgroud)
但对于API 21,您应该有另一个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>
Run Code Online (Sandbox Code Playgroud)
最后在您的主要活动中
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
最后,你要对工具栏做任何事情,获取它并像旧的Action Bar一样对待它:
getSupportActionBar().setHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15745 次 |
| 最近记录: |