J'utilise DataBinding
et suivant architecture MVVM, maintenant je suis coincé sur la façon d'ajouter un nouveau fragment de ViewModel
que nous avons besoin événement click DEFINED ViewModel
. Voici ma MainViewModel
classeAjouter fragment de ViewModel dans l'architecture MVVM
public class MainViewModel {
private Context context;
public MainViewModel (Context context) {
this.context = context;
}
public void onClick(View v) {
}
}
voici mon xml où j'ai défini événement click
<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>
maintenant comment puis-je obtenir supportFragmentManager
ou childFragmentManager
de ma classe ViewModel? J'ai essayé d'utiliser activity.getSupportFragmentManager()
et activity.getChildFragmentManager()
mais il n'a pas ce genre de méthode.
Je sais que nous pouvons ajouter fragment avec le code suivant
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();
mais comment le faire dans ViewModel
classe
oui c'est disponible, mais je ne suis pas sûr que ce soit une bonne idée ou pas quand on travaille avec mvvm. –
Je voudrais aller avec genre d'idée EventBus c'est la meilleure solution alors la première réponse acceptée ici. – Jileshl
Je voudrais aller avec genre d'idée EventBus c'est une meilleure solution alors la première réponse acceptée ici. – Jileshl