为什么 Android 上下文菜单是空的?

Why is the Android context menu empty?

我有上下文菜单布局:

<?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/share_btn"
        android:icon="@drawable/ic_delete_black_24dp"
        android:title=""
        app:showAsAction="always"/>
  <item
        android:id="@+id/edit_btn"
        android:icon="@drawable/ic_edit_black_24dp"
        android:title=""
        app:showAsAction="always"/>
  <item
        android:id="@+id/remove_btn"
        android:icon="@drawable/ic_delete_black_24dp"
        android:title=""
        app:showAsAction="always"/>
</menu>

还有 Fragment,我试图在其中显示菜单:

class OverviewFragment: Fragment() {

/* some code */

override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenu.ContextMenuInfo?) {
    super.onCreateContextMenu(menu, v, menuInfo)
    this.activity!!.menuInflater.inflate(R.menu.binge_card_menu, menu)
 }
/*some code */ }

但是布局没有显示:

但听众工作,如果我以编程方式制作菜单,一切都会正确显示,所以我不知道为什么。

发生这种情况是因为您使用空字符串作为标题:

 <item
    android:id="@+id/share_btn"
    android:title=""
    .../>

正确方法:

<?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/share_btn"
        android:icon="@drawable/ic_delete_black_24dp"
        android:title="Share"
        app:showAsAction="always"/>
  <item
        android:id="@+id/edit_btn"
        android:icon="@drawable/ic_edit_black_24dp"
        android:title="Edit"
        app:showAsAction="always"/>
  <item
        android:id="@+id/remove_btn"
        android:icon="@drawable/ic_delete_black_24dp"
        android:title="Remove"
        app:showAsAction="always"/>
</menu>

不要使用空字符串。

<item
android:id="@+id/share_btn"
**android:title="Share"**
.../>