如果showAsAction = never,则自定义布局菜单项显示为空

时间:2015-05-07 08:15:39

标签: android android-layout

我正在尝试使用以下代码将SwitchCompat添加到溢出菜单

main.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
       android:id="@+id/menu_dummy_content"
       android:title=""
       android:actionViewClass="android.support.v7.widget.SwitchCompat"
       app:showAsAction="never"
       app:actionLayout="@layout/menu_item_switch"/>

    <!-- TODO: Delete this after bug fix-->
    <item
       android:id="@+id/menu_dummy_content_2"
       android:title="Second Title"
       app:showAsAction="never"/>
</menu>

menu_item_switch的布局是:

<android.support.v7.widget.SwitchCompat
    xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/menu_item_switch_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:text="@string/menu_item_dummy_tasks"
    android:layout_centerVertical="true"/>

如果我执行 app:showAsAction =“ifRoom”或其他任何内容,则切换显示完全正常,并且侦听器正常工作。 但是只要我将 showAsAction设为永不。开关视图变为白色/空,但onOptionsItemSelected表示单击的项目为menu_dummy_content。

我还尝试仅在自定义布局中使用 TextView ,而且也为空。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

由于您将showAsAction属性设置为never,因此这些菜单项永远不会显示为动作布局。

我相信你需要在这里添加标题文字......

 <item
   android:id="@+id/menu_dummy_content"
   android:title=""
   android:actionViewClass="android.support.v7.widget.SwitchCompat"
   app:showAsAction="never"
   app:actionLayout="@layout/menu_item_switch"/>
像这样......

android:title="First Title"