7

无论我尝试什么,我似乎都无法让图像和文本在操作栏中的菜单项上以纵向模式工作。我什至试图强制 android 纵向

我的 XML:

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

有没有人弄清楚这一点?

4

3 回答 3

8

From the config.xml file of the native ActionBar:

values:

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

values-480dp:

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

To answer your question:

No you can't do that, if the devices width is smaller than 480dp. (Unless you want to create a custom rom with a modded framework)

于 2013-04-20T20:59:43.110 回答
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 日历中完成的方式,但也依赖于替换操作栏的自定义视图。

于 2014-12-18T14:50:49.840 回答
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>
于 2018-11-25T11:04:13.720 回答