Дочерний фрагмент не вызывает onCreateOptionsMenu - PullRequest
1 голос
/ 11 мая 2019

onCreateOptionsMenu не вызывает, я пытаюсь добавить меню в дочерний фрагмент

override fun onCreate(savedInstanceState: Bundle?) {
    if(activity is AppCompatActivity){
        (activity!! as AppCompatActivity).setSupportActionBar(toolbarCarpets)
    }
    setHasOptionsMenu(true)
    super.onCreate(savedInstanceState)

}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
    Log.d(LOG_TAG,"onCreateOptionsMenu")
    inflater.inflate(R.menu.search,menu)
    val item : MenuItem = menu.findItem(R.id.action_search)
    searchView.setMenuItem(item)
    super.onCreateOptionsMenu(menu, inflater)
}

1 Ответ

0 голосов
/ 12 мая 2019

Вместо добавления панели инструментов в методе onCreate () попробуйте добавить то же самое внутри onActivityCreated ()

override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)

        if(activity is AppCompatActivity){
            (activity!! as AppCompatActivity).setSupportActionBar(toolbarCarpets)
        }
        setHasOptionsMenu(true)
    }

Я полагаю, что проблема здесь в том, что объект представления 'панели инструментов' является нулевым, когда вы добавляете внутрьonCreate ().Вы можете выполнить отладку, чтобы проверить значение toolbarCarpets в Oncreate ().Это может быть связано с тем, что панель инструментов добавлена ​​в макет дочернего фрагмента, который не раздувается до метода OnCreateView ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...