美文网首页
DataBinding+PagerAdapter

DataBinding+PagerAdapter

作者: Frank_Kivi | 来源:发表于2018-10-29 20:49 被阅读8次


public abstract class BasePagerAdapter<E> extends PagerAdapter {
    private List<E> mDatas = new ArrayList<>();

    public BasePagerAdapter(List<E> datas) {
        if (datas != null) {
            mDatas.addAll(datas);
        }
    }

    @Override
    public int getCount() {
        return mDatas.size();
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ViewDataBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(container
                .getContext()), getLayoutId(position), container, true);
        onBindData(viewDataBinding, mDatas.get(position), position, mDatas);
        return viewDataBinding.getRoot();
    }

    protected abstract int getLayoutId(int position);

    protected void onBindData(ViewDataBinding viewDataBinding, E data, int position,
                              List<E> datas) {
        viewDataBinding.setVariable(1, mDatas.get(position));
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((View) object);
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
        return view == o;
    }
}

网友评论

      本文标题:DataBinding+PagerAdapter

      本文链接:https://www.haomeiwen.com/subject/couitqtx.html