pea*_*ion 3 data-binding android
我正在通过数据绑定替换现有代码。但我面临一个问题。
我有一些由多个活动/片段共享的布局文件。例如,有一个layout_sub由SubFragmentA及其扩展类使用的布局文件SubFragmentB。并且这两个片段中使用的数据模型并不相同。
代码如下所示。
public class SubFragmentA extends Fragment {
private DataA dataA;
@Override
public View onCreateView(Bundle Bundle) {
View v = LayoutInflator.from(getActivity()).inflate(R.layout.shared_layout);
initView(v, dataA);
return v;
}
private void initView(view v, DataA dataA) {
// use dataA to init v
}
}
public class SubFragmentB extends Fragment {
private DataB dataB;
@Override
public View onCreateView(Bundle Bundle) {
View v = LayoutInflator.from(getActivity()).inflate(R.layout.shared_layout);
initView(v, dataB);
return v;
}
private void initView(view v, DataB dataB) {
// use dataB to init v
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我认为在layout_sub文件中同时使用 DataA 和 DataB不是一个好主意,因为它需要大量冗余代码来决定使用哪个对象。
请分享您对这个问题的想法。
最后,我得到了一个解决方案。数据绑定用于 MVVM 模式。这意味着一个布局对应一个 ViewModel。ViewModel 包含 UI 布局的所有数据。所以我应该为每个布局文件准备一个 ViewModel。每个片段/活动都应该只处理 ViewModel。
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |