我有一个图标,我想在操作栏中显示一些文字。然而,无论我做什么(改变文本总是显示,文本是一个字母,所以有绝对的空间等)我不能同时显示(图标总是显示正常),但仅限于xhdpi屏幕。如果我在240dpi或更低的速度下运行它会显示两者。我在谷歌上看到没有用图标显示的文字是ICS中的一个错误,但我在API 19上进行了测试。有没有解决方案呢?感谢
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_dafuq"
android:icon="@drawable/dafuq"
android:title="@string/dafuq"
android:showAsAction="ifRoom|withText" />
</menu>
答案 0 :(得分:0)
您可以使用SpannableString并在文本前注入您的图标! 像这样:
final MenuItem action_dafuq = menu.findItem(R.id.action_dafuq);;
final ImageSpan icon = new ImageSpan(getContext(), R.drawable.icon);
final SpannableString title = new SpannableString(" " + "dafuq");
title.setSpan(icon, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
action_dafuq.setTitle(title);
我希望这有效。
答案 1 :(得分:0)
奇怪的是,较高分辨率的屏幕并不表示与较低分辨率屏幕进行比较。 无论如何,我建议你检查它在 landscape 方向上是如何工作的。
如果您没有显示太多图标,可以尝试强制始终显示图标+包含always
和withText
标记的文字
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_dafuq"
android:icon="@drawable/dafuq"
android:title="@string/dafuq"
android:showAsAction="always|withText" />
</menu>
另一个选项是,您可以使操作栏项目布局膨胀,然后使用适配器进行自定义:Actionbar styled overflow menu items