划分5个View将界面进行模块划分以几个View填充

mac2025-07-17  6

1 BaseModule-View基类

public abstract class BaseModule<T>{ private Context mCtx; public View view; public BaseModule(Context ctx){ this.mCtx = ctx; view = initView(); } //因为在父类中不知道详情4个拆分出来模块的具体布局效果 public abstract View initView(); //因为在父类中不知道详情4个拆分出来模块的具体数据也不知道控件有哪些,所以提供一个给控件填充数据方法 public abstract void bindData(T t); }

2 子view

public class AppInfoModule extends BaseModule<HomeInfo.AppInfo> { @BindView(R.id.tv_name) TextView tvName; public AppInfoModule(Context ctx) { super(ctx); } @Override public View initView() { View view = UIUitls.inflate(R.layout.layout_app_info); ButterKnife.bind(this,view); return view; } @Override public void bindData(HomeInfo.AppInfo appInfo) { tvName.setText(appInfo.getName()); } }

3 将View添加至帧布局中。

public class DetailActivity extends AppCompatActivity { @BindView(R.id.fl_app_info) FrameLayout flAppInfo; @BindView(R.id.fl_app_safe) FrameLayout flAppSafe; private View onSubCreateSuccessedView() { View view = UIUitls.inflate(R.layout.activity_detail); ButterKnife.bind(this,view); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //将顶部应用基本信息添加至帧布局中 AppInfoModule appInfoModule = new AppInfoModule(UIUitls.getContext()); appInfoModule.bindData(detailAppInfo); flAppInfo.addView(appInfoModule.view); //安全相关 AppSafeModule appSafeModule = new AppSafeModule(UIUitls.getContext()); appSafeModule.bindData(detailAppInfo); flAppSafe.addView(appSafeModule.view); ... return view; } }

 

最新回复(0)