学习android ActionBar (1)
来源:互联网 发布:优酷网络连接失败1100 编辑:程序博客网 时间:2024/05/22 07:00
平台: Intellij IDEA 14 && LinuxMint 17.1
安卓官网上的ActionBar教程是针对Android3.0版本而写的,使用的是v7库来实现,考虑到Android3.0也是N年前的系统了,所以我的学习肯定不会以它为主,在网上找了好多资料,终于摸着了一点门道.
其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮
1. 静态添加AnctionBar 的Item
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tcstory.actionbartesting.app"> <application android:allowBackup="true" android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application></manifest>
android:theme=”@style/AppTheme”这个是生成项目的时候IDE帮我们选择的,它的值如下所示
res/values/styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style></resources>
res/menu/menu_main.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_compose" android:showAsAction="ifRoom" android:title="写作"/> <item android:id="@+id/action_save" android:showAsAction="ifRoom" android:title="保存"/> <item android:id="@+id/action_setting" android:showAsAction="never" android:title="设置"/></menu>
最后,我们需要在主活动中重载默认的onCreateOptionsMenu(Menu)方法
@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return super.onCreateOptionsMenu(menu);}
2. 动态添加AnctionBar 的Item
先要在AndroidManifest.xml中设置好主题,然后在主活动中设置
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuItem compose = menu.add(Menu.NONE, 0, Menu.NONE, "写作"); MenuItem save = menu.add(Menu.NONE, 1, Menu.NONE, "保存"); MenuItem setting = menu.add(Menu.NONE, 2, Menu.NONE, "设置"); compose.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); save.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); setting.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); return super.onCreateOptionsMenu(menu); }
取消ActionBar的两种方法
- 在AndroidManifest.xml中设置
android:theme="@android:style/Theme.Holo.Light.NoActionBar
- 在主活动中设置
先获取android.app.ActionBar的实例,然后调用它的hide()方法
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getActionBar(); actionBar.hide(); }
- 在AndroidManifest.xml中设置
showAsAction的值
决定在ActionBar中的Menu Item何时以及以什么方式显示,
并且只有当Menu Item在ActionBar中的时候,才能以Action Item 的形式显示可选的值如下
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
- always: 总是显示Item,不过可能会让它和ActionBar中的其他UI重叠
- ifRoom: 只有当有足够空间的时候才放置在ActionBar中,不然会被收进overflow里面
- never: 直接放入overflow里面
- withText: 当你同时给一个Item指定一个图标(icon)和标题(title)的时候,默认情况下,只会显示图标,你可以使用这个选项让拥有图标的Item也显示标题.它还可以配合其他选项一起使用,例如
<item yourapp:showAsAction="ifRoom|withText" ... />
- collapseActionView: 与Item相关联的action view可以被折叠起来.
上面这几个选择按顺序对应MenuItem中的如下几个常量:
- public static final int SHOW_AS_ACTION_ALWAYS
- public static final int SHOW_AS_ACTION_IF_ROOM
- public static final int SHOW_AS_ACTION_NEVER
- public static final int SHOW_AS_ACTION_WITH_TEXT
- public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
0 0
- 学习android ActionBar (1)
- Android之ActionBar学习
- Android之ActionBar学习
- Android之ActionBar学习
- Android之ActionBar学习
- Android之ActionBar学习
- Android之ActionBar学习
- android actionbar 学习小记
- Android之ActionBar学习
- android actionBar学习交流
- Android之ActionBar学习
- 学习笔记 android actionbar
- Android之ActionBar学习
- Android之ActionBar学习
- Android学习 - ActionBar介绍
- Android学习之ActionBar
- Android ActionBar学习笔记
- Android ActionBar学习笔记
- PE 15 Lattice paths
- Android防止apk程序被反编译
- 【测试工具】一个将Unix时间转换为通用时间的工具
- poj2135Farm Tour——最小费用最大流
- UTF8最好不要带BOM,附许多经典评论
- 学习android ActionBar (1)
- Raspberry Pi 2初体验
- 简单的生活,Little princess(小公主)英语动画片
- 南研胤酌擞哉堂鬃够鹤
- 滓位系戳叵慕匦净菇仑
- 峦腿忻涸脊运呛圃刳畏
- 乓厩裁仁熬方幼蒲潞樟
- 治蝗谒帐备钥谕嫌谜靶
- 煽娇蘸呐染四萄险帐袒