Я работаю над проектом и внедряю модель MVVM с databinding
и navigation
. My button
на fragment
, который открывается с drawer menu item
, дело в том, что когда я нажимаю на кнопку, она ничего не делает, отладчик не go не входит в метод навигации, я действительно не знаю, что Я сделал не так, может кто-нибудь помочь?
MYACCOUNT CLASS
:
class MyAccountFragment : BaseFragment() {
private val vm: MyAccountViewModel by viewModel()
override fun getViewModel(): BaseViewModel = vm
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val binding = FragmentMyAccountBinding.inflate(inflater, container, false)
context ?: return binding.root
injectFeature()
setToolbar(binding)
subscribeUi(binding)
return binding.root
}
/**
* set toolbar
* **/
private fun setToolbar(binding: FragmentMyAccountBinding) {
binding.appBarLayout.backClickListener = (activity as MainActivity).createOnBackClickListener()
}
/**
* set ui
* **/
private fun subscribeUi(binding: FragmentMyAccountBinding) {
binding.viewModel = vm
}
}
MYACCVIEWMODEL
class MyAccountViewModel constructor() : BaseViewModel() {
fun onAddRoomClick()
{
navigate(MyAccountFragmentDirections.actionMyAccountFragmentToAddRoomFragment())
}
}
и в xml я реализовал
android:onClick="@{() -> viewModel.onAddRoomClick()}"
Я использую этот шаблон для всех моих Fragments
и ViewModels
, и я действительно не знаю, почему он ничего не делает, vm инициализирует. На другом drawermenu fragment
у меня также есть метод onClick, и он переходит к другому фрагменту. Так что, если кто-нибудь знает решение, которое будет полезно, заранее спасибо.