1.在AndroidManifest.xml中添加配置activity属性
<activity android:name=".killProcess"
android:label="杀杀杀"
android:theme="@style/AppTheme">
</activity>
2.在menu文件夹下新建一个布局,并在布局中增加控件
<menu 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" tools:context=".killProcess">
<item android:id="@+id/personalInformation"
android:title="一般不显示"
android:icon="@drawable/cn_icon_person_center_blue"
android:orderInCategory="100" app:showAsAction="always" /><!--icon可以自选一个图片,放在res文件下的drawable目录下-->
<item android:id="@+id/dianhua" android:title="一般不显示"
android:orderInCategory="100" app:showAsAction="never" /><!--如果是never则会将icon收敛到三个点点点的menu中-->
</menu>
3.然后在activity对应的java文件中重载onCreateOptionsMenu方法,并选用自己创建的menu文件,比如此处的“R.menu.kill”
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.kill, menu);
return super.onCreateOptionsMenu(menu);
}
这种方式的actionBar是没有三个点点点的overflow按钮,当标题栏上的控件过多时,无法自动将控件隐藏进overflow按钮
如果需要使用带overflow的标题栏,可以通过反射设置显示overflow按钮,修改ViewConfiguration类的sHsPermanentMenuKey字段值
private void setOverflowShowingAlways() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
} catch (Exception e) {
e.printStackTrace();
}
}
然后在OnCreate方法中调用一下刚才的setOverflowShowingAlways()就可以了
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kill_process);
setOverflowShowingAlways();
另外,也可以换一个theme
1.在AndroidManifest.xml文件中将theme改成AppTheme.NoActionBar
<activity android:name=".killProcess"
android:label="杀杀杀"
android:theme="@style/AppTheme.NoActionBar">
</activity>
2.在activity的布局文件中增加toolBar
<android.support.design.widget.AppBarLayout android:layout_height="wrap_content"
android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
3.在activity对应的java文件中添加布局文件中定义的toolBar
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kill_process);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
menu文件和onCreateOptionsMenu和第一种方式保持一致就可以了,运行效果如下: