Изменение title в ToolBar вне OnCreate
Задумка такова, что при пролистывании viewpager'ом, будет меняться заголовок в ToolBar. То есть все вписано должно быть в обработчике перелистывания viewpager. Но изменить заголовок у меня получается только лишь внутри OnCreate
setSupportActionBar(findViewById(R.id.toolbar_Main))
toolbar_Main.title = "Заголовок"
В выносных функциях toolbar_Main просто не виден, поэтому невозможно реализовать подобным кодом идею.
Как это возможно обойти? Заранее спасибо. Код на Java тоже пойдет
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Есть несколько вариантов:
Делаем интерфейс:
interface DataUpdater { fun update(title:String,subtitle:String) }
и используя его мы сможем из фрагмента передать данные в родительскую активность. Подключаем в активности:
class HomeScreen : AppCompatActivity(), DataUpdater{
...
override fun update(title: String, subtitle: String) {
// сетим заголовок
}
...
}
подключаем к фрагменту:
class SomeClass: Fragment(){
lateinit var updateUI: DataUpdater
...
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is DataUpdater) {
updateUI = context
}
}
}
и все.
Второй вариант:
(activity as YourActivity).supportActionBar?.title = getString(R.string.your_title)
