Я новичок в программировании android, и я создал пользовательский вид, отображающий нижнее меню. Я должен сделать это на заказ (без компонентов материала) для нужд.

Цель этого пользовательского представления - позволить пользователю перемещаться по некоторым фрагментам этот дескриптор определяет c пользовательских опций.
Я реализовал его в MainActivity (единственном действии для приложения), так как он должен отображаться только в некотором фрагменте в середине приложения (фрагменты для информация для клиентов).
Основная проблема заключалась в создании навигации для настраиваемого представления. Основной ошибкой в начале было
View com.customviews.customerbottom.CustomMenuView{c9abff2 V.E...... ........ 26,1573-1054,1678 #7f0a00c1 app:id/customer_bottom_menu} does not have a NavController set
. Для решения этой проблемы я передал NavController из MainActivity в CustomView через установщик.
MainActivity Code
override fun onCreate(savedInstanceState: Bundle?) {
// {... Other Setup Code...}
// Ref to the navigation
navController = this.findNavController(R.id.myNavHostFragment)
// Ref to the custom view
customMenuView = binding.customerBottomMenu
// Setter method
customMenuView.setNavController(navController)
// {... Other Setup Code...}
}
Код пользовательского просмотра
class CustomMenuView : LinearLayout {
private var navController : NavController? = null
private var clickableIcon : CustomMenuViewIcon? = null
//{constructors}
override fun onFinishInflate(){
//{ inflatter and layout creation}
clickableIcon =
inflater.inflate(R.layout.single_icon_bottom_menu, this, false) as
CustomerMenuIconView?
clickableIcon?.setOnClickListener{
navController?.navigate(*ToDestination)
}
}
fun setNavController(nc : NavController){
navController = nc
}
}
Вопрос: насколько опасно проходить таким образом navController? Следует ли мне избегать этого способа навигации с помощью пользовательских представлений?
Спасибо!