Skip to content

Databing 替换 ButterKnife #79

@gongjie

Description

@gongjie
  1. mvp工程下的build.gradle文件中的android模块下增加

    buildFeatures { dataBinding = true }

  2. XActivity的更改如下:

    增加泛型:public abstract class XActivity<P extends IPresent, DataBinding extends ViewDataBinding> extends RxAppCompatActivity implements IView<P>{}

    定义变量:protected DataBinding mDataBinding;

    修改布局的设置onCreate方法中:mDataBinding = DataBindingUtil.setContentView(this, getLayoutId()); bindUI(mDataBinding.getRoot());

  3. XFragment的更改如下:

    增加泛型:public abstract class XFragment<P extends IPresent, DataBinding extends ViewDataBinding> extends RxFragment implements IView<P> {}

    定义变量:protected DataBinding mDataBinding;

    修改布局的设置onCreateView方法中:mViewDataBinding = DataBindingUtil.inflate(inflater, getLayoutId(), container, false); rootView = mViewDataBinding.getRoot(); bindUI(rootView);

  4. LazyFragment的更改如下:

    增加泛型:public class LazyFragment<DataBinding extends ViewDataBinding> extends RxFragment{}

    定义变量:protected DataBinding mDataBinding;

    修改布局的设置setContentView中:(if分支)mViewDataBinding = DataBindingUtil.inflate(getLayoutInflater(), layoutResID, container, false); View view = mViewDataBinding.getRoot();

    (else分支)mViewDataBinding = DataBindingUtil.inflate(getLayoutInflater(), layoutResID, container, false); rootView = mViewDataBinding.getRoot();

  5. XLazyFragment的更改如下:

    增加泛型:public abstract class XLazyFragment<P extends IPresent, DataBinding extends ViewDataBinding> extends LazyFragment<DataBinding> implements IView<P> {
    以上都是个人拙见,有需要的可以替换使用

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions