
本文共 3558 字,大约阅读时间需要 11 分钟。
������Fragment��������������������������� ��� ������MVVM���������������������������������
���������������
���������������Android���������������������������������������������������ViewModel
���������������������������������������������������������������������������������������������������������������Fragment
������������������������������������������������������������������MVVM
������������������������������������������������������������������������������
������������
Fragment
���������������LifecycleModel
������������������������������������������������
���������������������
Custom Lifecycle Model implementation:
class UserLifecycleModel implements LifecycleModel { private val mSubject = PublishSubject.create() fun doAction(s: String) { mSubject.onNext(s) } fun addAction(consumer: Consumer) { mSubject.subscribe(consumer) } override fun onCleared() {}}
������Fragment���������������������������
Fragment Lifecycle Management:
HolderFragment extends Fragment { // ... private final LifecycleModelStore mLifecycleModelStore = new LifecycleModelStore() HolderFragment() { setRetainInstance(true) } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) sHolderFragmentManager.holderFragmentCreated(this) } // ...}
������������
������������
��������������� Lifecycle Model
class UserLifecycleModel implements LifecycleModel { //...}
������ Fragment
LifecycleModelProviders.of(this).put(UserLifecycleModel.class.getName(), UserLifecycleModel())
������ Fragment ������
// Singleton Fragment implementationclass HolderFragment : Fragment() { // ...}
������������������������
class HolderFragment : Fragment() { // ... private final LifecycleModelStore mLifecycleModelStore = LifecycleModelStore() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) sHolderFragmentManager.holderFragmentCreated(this) }}
������ UI������������
// ��� Fragment������������������UserLifecycleModel lifecycleModel = getLifecycleModelStore().get( UserLifecycleModel::class.java.name)lifecycleModel.addAction(Consumer { s -> // ������ UI Log.d("AFragment", s)})
������������������������
UserLifecycleModel lifecycleModel = getLifecycleModelStore().get( UserLifecycleModel::class.java.name)lifecycleModel.doAction("JessYan")
������������������
HolderFragment���
Fragment ��������������������� Fragment ������������������������������ Activity ���������������������������������������������������
LifecycleModelStore���
��������������������� LifecycleModel ��������������������� Fragment������������������������������
HolderFragmentManager���
������ Fragment ��� Activity ������������������������������ Fragment ������������������������������
������������������������
.hxx ��������������������������������� Fragment ��������� Activity ���������������������������������������
��������������������� HolderFragment ��� Fuksonize ��������������������������������������������������� Activity ���������������������
������
������������ Fragment ������������������������������������������������ MVVM ������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
