android - 如何在 fragment 中创建选项菜单

标签 android android-layout android-fragments kotlin

如何使用 kotlin 在 fragment 中添加选项菜单

class HomeFragment : Fragment() {

companion object {
    lateinit var drawerLayout:DrawerLayout
    lateinit var toolbar: android.support.v7.widget.Toolbar
    private lateinit var toggle: ActionBarDrawerToggle



}



override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {
    // Inflate the layout for this fragment
    val v = inflater.inflate(R.layout.fragment_home, container, false)
    setHasOptionsMenu(true)

    toolbar = v.findViewById(R.id.toolBar) as Toolbar
    toolbar.inflateMenu(R.menu.menuhome)




    drawerLayout = v.findViewById(R.id.drawer_Layout)

    // Creating toggle

    toggle = ActionBarDrawerToggle(activity, drawerLayout, toolbar,R.string.navigaionopen,R.string.drawerClosed)
    drawerLayout.addDrawerListener(toggle)
    toggle.syncState()






    return v
}


override fun onOptionsItemSelected(item: MenuItem?): Boolean {
    when(item!!.itemId){
        R.id.search -> {Toast.makeText(context,"Search",Toast.LENGTH_SHORT).show()}

        R.id.send -> {Toast.makeText(context,"Send selected",Toast.LENGTH_SHORT).show()}
    }
    return super.onOptionsItemSelected(item)
}

我已经添加,但是当我点击三个点或 ifroom 图标应用程序会崩溃。

覆盖创建选项菜单不适用于我的应用

最佳答案

为了有一个选项菜单,您需要在 onCreate 中告诉您的 fragment ,然后覆盖 onCreateOptionsMenu。
然后处理对项目的任何点击覆盖 onOptionsItemSelected()
您的完整 Activity 应如下所示:

class TestFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setHasOptionsMenu(true)
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
    inflater.inflate(R.menu.menu_test, menu);

    super.onCreateOptionsMenu(menu, inflater)
}

您也可以尝试使用 android 提供的 actionBar 小部件,以防 appcompat 不适合您

关于android - 如何在 fragment 中创建选项菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51344714/

相关文章:

android - 如何在用户触摸事件时在 xml 布局上 move 图像?

java - 如何使按钮方形和可调整大小

android - 如果为空,则更改 ListView 布局

android - 如何使 DialogFragment 模态化?

android - 垃圾收集破坏的 Activity 和后台堆栈中的所有 fragment 都显示而不是仅显示当前 Activity

android - ListView - 所选项目未按预期工作

java - 在 Android 中使用 google map api v2 时出错

安卓 : Initialize XML object from programmatically which has parameter

java - XML 与 setImageDrawable/setImageBitmap

android - 使用底部导航 View 的 viewpager 不会滑动 fragment