android ActionBar (doc)
发表于:,更新于:,By Sally
大纲
配置action bar (setting up the action bar)
在android > 3.0版本 (API level 11)
- android3.0开始,action bar可以通过
Theme.Holo
主题来引用,并且是一个默认主题
1 | // 使用时,只需要指定sdk版本>11即可 |
注:如果定制theme,必须指定custom theme 的parent 是
Theme.Holo
theme
在android > 2.1版本 (API level 7)
需要引入
v7 appcompat library
使我们的activity继承自
ActionBarActivity
1 | public class MainActivity extends ActionBarActivity {} |
- 在manifest文件中,指定
<application>
或者 个别的<activity>
元素使用Theme.AppCompat
theme
1 | <activity android:theme="@style/Theme.AppCompat.Light" ...> |
注: 如果是定制theme,需要指定其parent为
Theme.AppCompat
- 最后,在manifest设置api level
1 | <manifest ...> |
为action bar添加buttons
- 指定actions的xml,在
res/menu/
文件夹下添加menu xml文件
1 | <!-- 注意 showAsAction 属性 --> |
当app版本在2.1及以下,通过support包实现actionbar时,showAsAction
属性在android:
命名空间下不可用,该属性通过support包提供,所以需要自定义命名空间来使用showAsAction属性
1 | <menu xmlns:android="http://schemas.android.com/apk/res/android" |
- 在布局中引入menu
onCreateOptionsMenu()
- 将actions添加到action bar上
1 | @override |
- 添加menu的点击事件
onOptionsItemSelected()
1 | @override |
- add up button for low-level activities - 在manifest指定activity的parent,并在oncreate()方法中调用
setDisplayHomeAsUpEnabled()
即可
1 | <application ...> |
1 | @override |
action bar的样式
Theme.Holo
for a ‘dark’ themeTheme.Holo.Light
for a ‘light’ themeTheme.Holo.Light.DarkActionBar
for eh light theme with a dark action bar定制背景颜色,文本颜色,tab指示器 /getting started/adding the action bar/styling the action bar
overlaying the action bar
enable overlay mode
specify layout top-margin