А вдруг эта логика будет и в другой активти и один фрагмент может быть в 2х активити и тогда нужно менять код фрагмента на:
(activity as? YourActivity1).showProgressBar()
(activity as? YourActivity2).showProgressBar()
Ну ёлки, эт чуть другой вопрос.
Можно допилить мною предложенное. Если допустить, что баром могут управлять все Activity, то можно объявить интерфейс типо ProgressBarController
с методами управления баром, реализовать его во всех Activity, и во фрагментах вызывать методы Activity - хоста как (activity as ProgressBarController).showProgressBar()
.
Хотя, зная себя, я бы бахнул общую абстрактную Activity и реализовал бы этот интерфейс там, и из фрагмента бы уже обращался как - нибудь типо (activity as BaseActivity).showProgressBar()
.
Или, имхо, чуть получше, пульнул бы в BaseActivity какую - нибудь progressBarliveData
, и её бы из фрагментов мучил. Точнее, определил бы метод showProgress()
в родительском абстрактном BaseFragment
(да, люблю абстрактные классы, гоните меня, намехайтесь надо мной(( ), и его бы мучал ужо.