android学习笔记:在actionBar中增加控件
2016-06-24 11:26
471 查看
1.在AndroidManifest.xml中添加配置activity属性
这种方式的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
3.在activity对应的java文件中添加布局文件中定义的toolBar
menu文件和onCreateOptionsMenu和第一种方式保持一致就可以了,运行效果如下:
<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和第一种方式保持一致就可以了,运行效果如下:
相关文章推荐
- 屏幕和尺寸相关---Android
- Android service(三)前台服务
- android---常驻悬浮框效果的实现
- Android ViewPager中动态生成底部圆点
- 解决Android 5.0以上Button自带阴影的问题
- Android开发中Handler的案例分析
- 浅谈 PopupWindow 在 Android 开发中的使用
- android 获取手机的运营商
- Android中R文件的丢失问题
- android笔记之关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
- Android Theme 的一些简单信息
- Android通过JmDNS查找和注册设备的方法
- android竖排显示TextView
- Android NDK开发
- Android 倒计时 小Demo
- android常用的侧滑面板
- Android service(二)绑定服务
- 设置Scr a8fa ollView的滚动条为隐藏的方法,scrollview滚动条
- gvr-android-sdk 初探
- Android 获取屏幕的分辨率