Измените индикатор панели действий вверх на кнопку со стрелкой назад по умолчанию после изменения его с помощью настраиваемого рисования

#android #kotlin

#Android #kotlin

Вопрос:

Итак, всякий раз, когда я создаю действие, я настраиваю значок настраиваемого индикатора следующим образом:

 private fun setupActionBar() {
    setSupportActionBar(toolbar)
    supportActionBar?.apply {
        setDisplayShowTitleEnabled(false)
        setHomeButtonEnabled(true)
        setHomeAsUpIndicator(R.drawable.custom_drawable)
        setDisplayHomeAsUpEnabled(true)
    }
}
 

Мой вопрос — как я могу изменить setHomeAsUpIndicator стрелку назад по умолчанию из фрагмента?

Комментарии:

1. вызовите это из вашего фрагмента ((YourActivity) Objects.requireenonnull(getActivity())).setupActionBar(); на этот раз используйте setHomeAsUpIndicator(R.drawable.custom_drawable)

Ответ №1:

Внутри функции onAttach (контекст: контекст) во фрагменте вы можете получить доступ к панели действий

 override fun onAttach(context : Context) {
        if (context is YourParentActivity) {
            val activity = context as YourParentActivity
            activity.supportActionBar?.apply{
                setDisplayShowTitleEnabled(false)
                setHomeButtonEnabled(true)
                setHomeAsUpIndicator(R.drawable.your_deafault_back_arrow)
                setDisplayHomeAsUpEnabled(true)

               //Here Customize your  action bar as much as you want
            }
        }
}
 

Наслаждайтесь кодированием: Пожалуйста, дайте мне знать, если у вас возникнут какие-либо другие проблемы с этим

Комментарии:

1. «R.drawable.your_deafault_back_arrow» — для этого мне нужен пользовательский drawable. Это не то, что я ищу. Я хочу установить значение по умолчанию, предоставляемое самим Android.

2. Стрелка appcompat — это: R.drawable.abc_ic_ab_back_material По крайней мере, в последней библиотеке поддержки название менялось с годами.