解决ActionBar中不显示item的问题,item显示在overflow中
一、问题描述
使用ActionBar时,需要增加一个菜单选项,即在/menu/main.xml的布局文件中添加item项,但却显示在overflow中,而不是在ActionBar中直接显示。main布局文件是这么写的:
<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="cn.irains.parkinglay_by.app.ParkInsideActivity" >
<item android:id="@+id/connect_status"
android:showAsAction="always"
android:orderInCategory="1"
android:icon="@drawable/status"
android:title="@string/connect_status"
/>
<item android:id="@+id/action_settings"
android:title="@string/see_charge"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
这是由于:
Action Bar not displaying Action Items (All in overflow) Android (←点击链接)。即若我们 MainActivity继承了ActionBarActivity(
MainActivity extends ActionBarActivity),这时所有的Item都默认压缩到
overflow中,这时
在xml文件里,应该把android:showAsAction换成app:showAsAction。即:
<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="cn.irains.parkinglay_by.app.ParkInsideActivity" >
<item android:id="@+id/connect_status"
app:showAsAction="always"
android:orderInCategory="1"
android:icon="@drawable/status"
android:title="@string/connect_status"
/>
<item android:id="@+id/action_settings"
android:title="@string/see_charge"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
这种方法可以解决部分问题,但有时还是不能转跳View,不能显示图标的信息,鄙人建议是:XML文件还是不变:android:showAsAction="always"。直接把改变继承的关系。即把原来 MainActivity继承了ActionBarActivity改为MainActivity继承 Activity,这时问题就解决了。
【 尊重原创,转载请注明出处 】 http://blog.csdn.net/guyuealian/article/details/51713494