获取MenuItem的视图

问题描述

我试图以编程方式显示弹出菜单,以响应操作菜单项。

这是操作菜单本身。它有一个链接菜单项,应该会显示一个弹出菜单

<menu ...>
    <item
        android:id="@+id/action_links"
        android:title="@string/action_menu_links"
        app:showAsAction="ifRoom" />
    </item>
</menu>

点击后,我会动态构建菜单显示它。

override fun onCreateOptionsMenu(menu: Menu,inflater: MenuInflater) {
    inflater.inflate(R.menu.menu_home,menu)
    
    val linksItem = menu.findItem(R.id.action_links) ?: return

    linksItem.setonMenuItemClickListener {
        // This returns null - can't get anchor view
        val itemsView = requireView().findViewById<View>(R.id.action_links) ?: return@setonMenuItemClickListener true

        val popupMenu = PopupMenu(requireContext(),itemsView)

        popupMenu.show()
        true
    }
}

findViewById是为响应单击而调用的,因此菜单已经膨胀,并且在屏幕上-为什么返回null?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)