android中在ActionBar显示菜单项
在android3.0,也就是API11之后,android默认加入了actionbar的支持,通常使用actionbar有以下几种方法
- 使用android:style/Themes.Holo系列的主题,这样的主题是默认带有actionbar的
- 使用AppCompat系列的主题
在向actionbar添加菜单项是通过在android的menu的xml文件里面添加的
在添加的时候会涉及到三种方式的显示方式
分别时always,ifroom,never,withText
- always 菜单项会一直显示在actionbar上
- ifroom会显示可以放得下的图标,放不下的就会折叠,一般是两个,其余的隐藏
- never就是都隐藏了
- withText没有成功过,据说是能显示文字
代码示例:
首先在manifest里面指定Theme
android:theme="@style/Theme.AppCompat.Light"
然后在activity的文件里最好也指定一下,接着写menu的xml文件
<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=".MainActivity">
<item android:id="@+id/action1c_menu_search"
android:title="@string/action_settings"
android:orderInCategory="1"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always|withText" />
<item android:id="@+id/action2"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="2"
app:showAsAction="withText" />
<item android:id="@+id/action3"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="3"
app:showAsAction="ifRoom" />
<item android:id="@+id/action4"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="4"
app:showAsAction="ifRoom" />
<item android:id="@+id/action5"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="5"
app:showAsAction="ifRoom" />
<item android:id="@+id/action6"
android:title="@string/action_settings"
android:orderInCategory="6"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="ifRoom" />
<item android:id="@+id/action7"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="7"
app:showAsAction="ifRoom" />
<item android:id="@+id/action8"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="8"
app:showAsAction="ifRoom" />
<item android:id="@+id/action9"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="9"
app:showAsAction="ifRoom" />
<item android:id="@+id/action10"
android:icon="@mipmap/ic_launcher"
android:title="search"
android:orderInCategory="10"
app:showAsAction="ifRoom" />
</menu>
上面的那个search图标是自带的资源图标,就是一个放大镜
之前遇到了一些问题
- ifRoom没用,所有的菜单项都隐藏了,这个是因为使用了holo的主题,使用了这个主题就会出现这样的问题,还不知道是为什么
- 设置了AppCompat不行,是因为没有仔细看,有一个叫platform.v11.AppCompat的很像,但是这个是没有actionbar的