setSupportActionBar внутри фрагмента - PullRequest
0 голосов
/ 20 мая 2018

У меня есть фрагмент:

class HomeFragment : Fragment() { ... }

Сейчас я пытаюсь добавить к нему панель действий, но это не работает:

setSupportActionBar(findViewById(R.id.toolbar_main))

Как мне установитьПоддержка, а затем добавление элементов в панель действий?

Вот как это работает в AppCompatActivity:

//    This adds items to the ActionBar
    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        menuInflater.inflate(R.menu.menu_toolbar_main, menu)
        return true
    }


//    This is the OnClickListener for the Buttons in the ActionBar
    override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
    R.id.toolbar_edit -> {


        true
    }

    R.id.toolbar_search -> {


        true
    }

    else -> {
        // If we got here, the user's action was not recognized.
        // Invoke the superclass to handle it.
        super.onOptionsItemSelected(item)
    }
}

Большое спасибо заранее!

1 Ответ

0 голосов
/ 20 мая 2018

Переопределите onCreateOptionsMenu в вашем Fragment и накачайте свой menu внутри.Чем в onCreate методе Fragment установить setHasOptionsMenu() в true.Раздуть разные меню в зависимости от Fragment создания clear меню первым.

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

override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
    super.onCreateOptionsMenu(menu, inflater)
    inflater?.inflate(Your menu here, menu)
}
...