class FirstFragment : Fragment(), MenuProvider {
...
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
//not called
menuInflater.inflate(R.menu.menu_, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
return true
}
}
<com.google.android.material.navigation.NavigationView
android:id="@+id/nv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/menu_"/>
我尝试在片段中添加一个菜单(不是操作栏),即使我用XML添加它,我也无法在代码中访问它。我在互联网上尝试了很多方法,我在oncreate中添加了menuhost,我更新了模块的版本,但它不起作用,我需要知道什么?
我还尝试了此代码,未收到错误,但未调用函数
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val menuHost: MenuHost = requireActivity() as MenuHost
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
//not called
menuInflater.inflate(R.menu.menu_, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
}
}, viewLifecycleOwner, Lifecycle.State.RESUMED)
1条答案
按热度按时间0md85ypi1#
我解决了我看到这个代码视频:
我添加了OnViewCreaded,它起作用了