Android Navigation Drawer项目ActionBar三项设置修改需求
嘿,这三个Navigation Drawer的小调整操作起来很简单,我一步步给你说清楚:
1. 移除ActionBar右上角的设置图标
创建Navigation Drawer项目后,右上角的设置图标对应res/menu/menu_main.xml里的菜单项,直接删掉这个item就行:
- 打开项目中的
res/menu/menu_main.xml文件 - 删除带有
android:id="@+id/action_settings"的整个<item>标签,比如删掉这段:
<item android:id="@+id/action_settings" android:orderInCategory="100" android:title="@string/action_settings" app:showAsAction="never" />
这样右上角的设置图标就消失了。
2. 将抽屉菜单项标题改为红色
有两种方式可以实现,按需选择:
方式一:单个设置每个菜单项颜色
直接在res/menu/activity_main_drawer.xml的每个<item>标签里添加android:textColor="#FF0000"(红色的十六进制代码):
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:showIn="navigation_view"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_menu_camera" android:title="@string/menu_home" android:textColor="#FF0000" /> <item android:id="@+id/nav_gallery" android:icon="@drawable/ic_menu_gallery" android:title="@string/menu_gallery" android:textColor="#FF0000" /> </group> <item android:title="@string/menu_communities"> <menu> <item android:id="@+id/nav_share" android:icon="@drawable/ic_menu_share" android:title="@string/menu_share" android:textColor="#FF0000" /> <item android:id="@+id/nav_send" android:icon="@drawable/ic_menu_send" android:title="@string/menu_send" android:textColor="#FF0000" /> </menu> </item> </menu>
方式二:统一设置所有菜单项颜色(更推荐)
如果后续要改颜色只需要改一处,用样式来统一设置:
- 打开
res/values/styles.xml,添加一个自定义样式:
<style name="DrawerMenuItemText" parent="TextAppearance.AppCompat.Menu"> <item name="android:textColor">#FF0000</item> </style>
- 找到布局文件里的
NavigationView标签(通常在activity_main.xml),添加app:itemTextAppearance="@style/DrawerMenuItemText"属性:
<com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" app:itemTextAppearance="@style/DrawerMenuItemText" />
3. 移除ActionBar的标题
如果你只想隐藏标题但保留ActionBar,用下面的方法:
在MainActivity的onCreate方法里添加这段代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 隐藏ActionBar标题 if (getSupportActionBar() != null) { getSupportActionBar().setDisplayShowTitleEnabled(false); } // 你原有的其他代码,比如初始化NavigationView等... }
如果想彻底去掉ActionBar(连标题带栏一起隐藏),可以修改AndroidManifest.xml里的Activity主题:
<activity android:name=".MainActivity" android:theme="@style/Theme.YourAppName.NoActionBar"> </activity>
注意把YourAppName换成你自己的应用主题名称。
内容的提问来源于stack exchange,提问作者Ganz Alex
相关产品推荐
相关产品推荐

