ActionBar在纵向模式下带有图标和文字

时间:2013-04-20 20:44:16

标签: java android menu android-actionbar

无论我尝试什么,我似乎无法在操作栏中的菜单项上以纵向模式使用图像和文本。我甚至试图强迫android纵向定位

我的XML:

 <item android:id="@+id/menu_save"
  android:icon="@drawable/content"
  android:orderInCategory="100"
  android:title="New Group"
 android:showAsAction="withText|always" />

有人想出来了吗?

3 个答案:

答案 0 :(得分:9)

来自本机ActionBar的config.xml文件:

值:

<bool name="config_allowActionMenuItemTextWithIcon">false</bool>

值-480dp:

<bool name="config_allowActionMenuItemTextWithIcon">true</bool>

回答你的问题:

如果设备宽度小于480dp,请不要这样做。 (除非您想使用模块化框架创建自定义ROM)

答案 1 :(得分:0)

艾哈迈德的回答清楚地说明了为什么这是不可能的。令人讨厌的是,操作栏不容易定制。

一个快速而肮脏的解决方案是在菜单中放置两个按钮,从一个图标中删除图标,并为第二个图标指定一个不同的名称。然后在相应的java文件中,复制onOptionsItemSelected中额外按钮的功能。这样就不得不为操作栏创建自定义视图。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_done"
          android:icon="@drawable/ic_done"
          android:title="@string/done"
          yourapp:showAsAction="always" />
    <item android:id="@+id/action_done2"
          android:title="@string/done"
          yourapp:showAsAction="always" />
    <item android:id="@+id/action_cancel"
          android:icon="@drawable/ic_cancel"
          android:title="@string/cancel"
          yourapp:showAsAction="always" />
    <item android:id="@+id/action_cancel2"
          android:title="@string/cancel"
          yourapp:showAsAction="always" />
</menu>

我也看到了这个答案,但没有尝试过:withText in split ActionBar #Google Calendar Method。这是在Google日历中完成的方式,但也依赖于替换操作栏的自定义视图。

答案 2 :(得分:0)

最简单的方法是:

<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:ignore="AppCompatResource">
<item
    android:id="@+id/action_nexo"
    android:title="title"
    app:actionLayout="@layout/custom_menu_item"
    app:showAsAction="always"/>

 </menu>
  

custom_menu_item.xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="@string/nexo_tile_short"
    android:clickable="true"
    android:focusable="true"
    android:textSize="@dimen/text_size_small"
    android:textStyle="bold"
    android:textColor="?attr/actionMenuTextColor"
    />
<ImageView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:paddingTop="@dimen/padding_small"
    android:paddingBottom="@dimen/padding_small"
    android:src="@drawable/nexo"/>
 </LinearLayout>