我的操作栏菜单项正在切断操作栏微调器的宽度,以便微调器的文本被截断。我已将所有菜单项设置为使用“ifRoom”,但不幸的是它们将原始 Spinner 宽度解释为可用空间。
这是当我有三个菜单项时的截断(是的,我知道第三个图标看起来与第二个相同):
这是我注释掉第三个菜单项时得到的结果。最终,我想要看起来像这样的东西,但显示的是溢出图标而不是搜索图标:
我使用自定义适配器(从 BaseAdapter 扩展并实现 SpinnerAdapter)填充 Spinner。
这是我的菜单 XML:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/ab_refresh"
android:orderInCategory="1"
android:showAsAction="ifRoom"
android:title="@string/ab_refresh"
android:icon="@drawable/navigation_refresh"/>
<item
android:id="@+id/ab_search"
android:orderInCategory="2"
android:showAsAction="ifRoom|collapseActionView"
android:title="@string/ab_search"
android:icon="@drawable/action_search"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"/>
<item
android:id="@+id/ab_toggle"
android:orderInCategory="3"
android:showAsAction="ifRoom"
android:title="@string/ab_latest"
android:icon="@drawable/action_search"/>
</menu>
这是我的 ab_dropdown XML(在我的自定义适配器的 getView 中使用):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="30dp"
android:gravity="fill_horizontal">
<TextView
android:id="@+id/txt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginLeft="5dp"
android:layout_marginTop="1dp" />
</RelativeLayout>
我试过的:
- 为ab_dropdown 的RelativeLayout 和TextView 设置570dp 的minWidth。无论我是在 XML 中还是在自定义适配器的 getView 方法中设置它都没有效果。
- 将 RelativeLayout 和 TextView 的 layout_width 硬编码为 570dp。同样,对 XML 或代码没有影响。
- 我会尝试以编程方式找到操作栏 Spinner 以设置其宽度,但是当我出于不同的原因尝试这样做时,我做不到。
有任何想法吗?