删除溢出菜单片段中的 3 个点
Remove overflow menu 3 dots in fragment
我有一个需要自定义菜单的片段。下面是添加到我的片段中的代码。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.actionbar_menu, menu)
super.onCreateOptionsMenu(menu, inflater)
}
我的actionbar_menu
如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search"
android:icon="@drawable/search"
android:title="Search"
app:showAsAction="always"
tools:ignore="AlwaysShowAction" />
</menu>
我只希望这个搜索图标出现在工具栏中。发生的事情是它也添加了溢出菜单。如何删除溢出菜单?
更新: 我只在手机上遇到这个问题。在平板电脑模拟器中它没有出现。
当我以不同的方式调用相同的方法时它起作用了。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
menu.clear()
inflater.inflate(R.menu.actionbar_menu, menu)
}
首先从片段容器中删除菜单膨胀覆盖功能activity。
片段class:
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
setHasOptionsMenu(false) // Show/Hide Icon
return inflater.inflate(R.layout.fragment_first, container, false)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_main, menu) // Give your desire menu.xml
}
这个函数可以show/hide溢出菜单图标setHasOptionsMenu()
- 如果使用 setHasOptionsMenu(true),则菜单图标会出现在工具栏上。
- else setHasOptionsMenu(false),则菜单图标隐藏在工具栏上。
我有一个需要自定义菜单的片段。下面是添加到我的片段中的代码。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.actionbar_menu, menu)
super.onCreateOptionsMenu(menu, inflater)
}
我的actionbar_menu
如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search"
android:icon="@drawable/search"
android:title="Search"
app:showAsAction="always"
tools:ignore="AlwaysShowAction" />
</menu>
我只希望这个搜索图标出现在工具栏中。发生的事情是它也添加了溢出菜单。如何删除溢出菜单?
更新: 我只在手机上遇到这个问题。在平板电脑模拟器中它没有出现。
当我以不同的方式调用相同的方法时它起作用了。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
menu.clear()
inflater.inflate(R.menu.actionbar_menu, menu)
}
首先从片段容器中删除菜单膨胀覆盖功能activity。
片段class:
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
setHasOptionsMenu(false) // Show/Hide Icon
return inflater.inflate(R.layout.fragment_first, container, false)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_main, menu) // Give your desire menu.xml
}
这个函数可以show/hide溢出菜单图标setHasOptionsMenu()
- 如果使用 setHasOptionsMenu(true),则菜单图标会出现在工具栏上。
- else setHasOptionsMenu(false),则菜单图标隐藏在工具栏上。