簡體   English   中英

菜單下拉菜單中的“切換”按鈕顯示空白

[英]Switch button in menu drop-down shows blank space

我試圖在選項菜單中添加一個Switch,但是由於某種原因而不是自定義布局,它顯示了空白。

screen_on_menu_button.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Switch
        android:id="@+id/screen_on_switch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:switchPadding="8dp"
        android:text="@string/menu_screen_on" />

</RelativeLayout>

menu.xml文件:

<item
    android:id="@+id/new_game_button"
    android:title="@string/menu_new_game"
    android:visible="true"
    app:showAsAction="always"
    android:icon="@drawable/ic_new_game"/>

<item
    android:id="@+id/change_names"
    android:title="@string/menu_change_names"
    app:showAsAction="never"/>

<item
    android:id="@+id/layout_change"
    android:title="@string/menu_change_layout"
    app:showAsAction="never"/>

<!--android:checkable="true" -->
<item
    android:id="@+id/keep_screen_on"
    app:actionLayout="@layout/screen_on_menu_button"
    app:showAsAction="never"
    android:title="" />

<item
    android:id="@+id/help_feedback"
    android:title="@string/menu_help_feedback"
    app:showAsAction="never"/>

<item
    android:id="@+id/about"
    android:title="@string/menu_about"
    app:showAsAction="never"/>

我嘗試將app:actionLayout更改為android:app:actionLayout ,刪除相對布局,僅將開關保留在自定義xml中,它所做的就是在layout_changehelp_feedback之間添加空格。 如果我將showAsAction設置為始終,它將顯示在ActionBar中,但這不是我想要的。 另外,我可以選擇刪除開關並將菜單項設置為checkable ,但這並不是故意的,大多數類似的情況都提供了我已經實現的功能。

那么,如何在下拉選項菜單中集成該開關?

您無法在下拉菜單中添加自定義布局。 它僅接受<item><group> 另一種選擇是將<item>android:checkable並根據值更改默認的選中狀態。
其他選項可以是

  1. 用PopupWindow替換菜單
  2. 使用app:showAsAction="always"在操作欄中顯示開關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM