Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 弹出菜单中的怪异_Android_Kotlin_Popupmenu - Fatal编程技术网

Android 弹出菜单中的怪异

Android 弹出菜单中的怪异,android,kotlin,popupmenu,Android,Kotlin,Popupmenu,我在操作栏上创建了一个菜单图标。当它被点击时,我希望它会显示类似这样的内容 但它显示在左手边 这可能是什么问题 override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { inflater!!.inflate(R.menu.fragment_menu, menu) } override fun onOptionsItemSelected(item: MenuItem):

我在操作栏上创建了一个
菜单
图标。当它被点击时,我希望它会显示类似这样的内容

但它显示在左手边

这可能是什么问题

 override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
        inflater!!.inflate(R.menu.fragment_menu, menu)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
            val id = item.getItemId()
            if (id == R.id.more) {
                var popup: PopupMenu? = PopupMenu(context!!, view!!)
                popup?.menuInflater?.inflate(R.menu.pop_up_menu, popup.menu)
                popup?.show()

                popup?.setOnMenuItemClickListener({ item: MenuItem? ->
                    when (item!!.itemId) {
                        R.id.logOut -> {
                        }
                    }
                    true
                })
            } else
                super.onOptionsItemSelected(item)

            return true
        }
片段菜单

<?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/more"
          android:title="menu"
          app:showAsAction="always"
          android:icon="@drawable/ic_more"/>
</menu>
<?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/logOut"
            app:showAsAction="always"
            android:title="Log Out"
    />

</menu>

ActionBar中的菜单是由系统自动填充的,您不需要编写代码来填充它

要实现如图1所示的菜单,fragment_菜单应如下所示:

<menu>
  <item android:title="Search" />
  <item android:title="Locate" />
  <item android:title="Refresh" />
  <item android:title="Help" />
  <item android:title="Check for update" />
</menu>

ONOPTIONIMSELECTED用于在单击上述菜单时进行处理,而不是用于显示菜单


弹出菜单是自由位置菜单,类似于windows中的右键单击菜单,而不是图1所示的菜单。

ActionBar中的菜单是由系统自动填充的,您不需要编写代码来填充它

要实现如图1所示的菜单,fragment_菜单应如下所示:

<menu>
  <item android:title="Search" />
  <item android:title="Locate" />
  <item android:title="Refresh" />
  <item android:title="Help" />
  <item android:title="Check for update" />
</menu>

ONOPTIONIMSELECTED用于在单击上述菜单时进行处理,而不是用于显示菜单


弹出菜单是自由位置菜单,类似于windows中的右键单击菜单,而不是图1所示的菜单。

您传递的是@CodeRed所提到的错误的
视图

替换

var popup: PopupMenu? = PopupMenu(context!!, view!!)

val vItem=getActivity().findViewById(R.id.more)
var弹出窗口:弹出菜单?=弹出菜单(上下文!!,vItem)

您传递了@CodeRed提到的错误的
视图

替换

var popup: PopupMenu? = PopupMenu(context!!, view!!)

val vItem=getActivity().findViewById(R.id.more)
var弹出窗口:弹出菜单?=弹出菜单(上下文!!,vItem)

够奇怪的了。发布R.menu文件取决于要传递给PopupMenu构造函数的
视图。啊,等等,我刚刚意识到一件事:为什么要在
OnOptions ItemSelected()中弹出弹出窗口?这是某种辅助菜单吗?如果不只是把它放到CreateOptions菜单()
@AIMINPAN完成。很奇怪。post你的R.menu文件取决于你传递给PopupMenu构造函数的
视图。啊,等等,刚刚意识到:你为什么要在
OnOptions ItemSelected()
中放大弹出窗口?这是某种辅助菜单吗?如果不只是把它放到CreateOptionsMenu()
@AIMINPAN done.我希望注销显示与图1完全相同我希望注销显示与图1完全相同