【问题标题】:ActionBar with icon and text in portrait mode纵向模式下带有图标和文本的 ActionBar
【发布时间】:2013-04-14 01:11:38
【问题描述】:

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

我的 XML:

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

有人知道吗?

【问题讨论】:

  • 我不确定这会有所不同,但请尝试"always|withText"
  • @iturki 我怀疑这会奏效。请参阅下面的答案:)

标签: java android menu android-actionbar


【解决方案1】:

来自原生ActionBar的config.xml文件:

价值观:

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

值-480dp:

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

回答你的问题:

不,如果设备宽度小于 480dp,则不能这样做。 (除非您想使用修改过的框架创建自定义 rom)

【讨论】:

  • 嗯,这个想法是有的。我想我只是在视图上创建自定义按钮。谢谢!
【解决方案2】:

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

一个快速而肮脏的解决方案是在菜单中放置两个按钮,从一个中删除图标并为第二个赋予不同的名称。然后在相应的 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 日历中完成的方式,但也依赖于替换操作栏的自定义视图。

【讨论】:

    【解决方案3】:

    最简单的方法是:

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2011-10-22
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 2018-05-01
      相关资源
      最近更新 更多