Я использую DataBinding
и следую архитектуре MVVM, теперь я застрял на том, как добавить новый фрагмент из ViewModel
, так как нам нужно определить событие щелчка на ViewModel
. Вот мой MainViewModel
класс
public class MainViewModel {
private Context context;
public MainViewModel (Context context) {
this.context = context;
}
public void onClick(View v) {
}
}
вот мой xml, где я определил событие клика
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewmodel"
type="com.example.MainViewModel" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{viewmodel::onClick}"
android:text="click me"/>
</RelativeLayout>
</layout>
теперь, как я могу получить supportFragmentManager
или childFragmentManager
из моего класса ViewModel? Я пытался использовать activity.getSupportFragmentManager()
и activity.getChildFragmentManager()
, но у него нет такого метода.
Я знаю, что мы можем добавить фрагмент со следующим кодом
getActivity().getSupportFragmentManager().beginTransaction()
.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out, android.R.anim.fade_in, android.R.anim.fade_out).
add(R.id.container, fragment, "").addToBackStack("main").commit();
а как это сделать в ViewModel
классе