无论我尝试什么,我似乎无法在操作栏中的菜单项上以纵向模式使用图像和文本。我甚至试图强迫android纵向定位
我的XML:
<item android:id="@+id/menu_save"
android:icon="@drawable/content"
android:orderInCategory="100"
android:title="New Group"
android:showAsAction="withText|always" />
有人想出来了吗?
答案 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>