【发布时间】:2023-03-24 18:21:02
【问题描述】:
我正在用databinding 替换现有代码。但我面临一个问题。
我有一些布局文件由多个活动/片段共享。例如,SubFragmentA 及其扩展类SubFragmentB 使用了一个布局文件layout_sub。而且这两个fragment使用的数据模型也不一样。
代码如下所示。
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
}
}
到目前为止,我认为在layout_sub文件中同时使用DataA和DataB并不是一个好主意,因为它需要大量的冗余代码来决定使用哪个对象。
请分享您对这个问题的想法。
【问题讨论】:
标签: android data-binding