除了主要活动之外的所有活动中的Android操作栏
我是Android新手,我试图在我的项目中添加一个导航抽屉(仅限于一项活动)。 问题是,当我添加抽屉时出现错误。为了解决这个问题,我将我的应用程序样式更改为Theme.AppCompat.NoActionBar,但这样做会删除其他活动中的所有其他操作栏。除了主要活动之外的所有活动中的Android操作栏
我想在项目中使用另一种风格,并只在该主要活动中删除操作栏,如果这可以解决我的问题。 希望你们可以帮助我。谢谢。
这里是我的代码:
<style name="MyAppStyle" parent="@style/Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/bg_login</item> <item name="colorPrimaryDark">@color/bg_login</item> <item name="colorAccent">@color/activity_background</item> </style>
java代码:
private void setDrawer(){
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
android.support.v7.app.ActionBarDrawerToggle toggle = new android.support.v7.app.ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
//drawer.setDrawerListener(toggle);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
xml文件:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start" >
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/bg_login"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
您收到此埃罗因为样式Theme.AppCompat.Light.DarkActionBar
已经包含一个工具栏。所以在这里你试图把一个actionBar放在另一个actioBar上,这会导致错误。
首先设置一个样式,其中包含NoActionBar
然后像在每个活动中那样设置工具栏,并且不要在活动中执行任何不想使用工具栏的任何操作。
另外,如果您正在使用actionBar和navigationDrawer,您可能会对使用Fragments感兴趣,这将有助于制作动态UI界面。
非常感谢。 –
所有你需要做的就是在清单活动设置不同的主题,
Theme.AppCompat.Light.DarkActionBar
您要Actionbar
然后
Theme.AppCompat.NoActionBar
到包含Navigation Drawer
,也可以作为AppTheme下活动活动<Application
。
希望它可以帮助
非常感谢。 –
<activity
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
/>
只需设置你的主题,只有对mainactivity那么它不会显示动作条上的特定活动
当我改变了风格@风格/ Theme.AppCompat.Light。 DarkActionBar,我得到这个错误:java.lang.IllegalStateException:这个活动已经有一个窗口装饰提供的操作栏。请勿在您的主题中请求Window.FEATURE_SUPPORT_ACTION_BAR并将windowActionBar设置为false以代替使用工具栏。 –
“...但这样做会删除其他活动中的所有其他操作栏。” - 在''上设置'NoActionBar'主题。 –
非常感谢。 –