public BaseViewHolder(T t) { super(t.getRoot()); mViewDataBinding = t; } }
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewDataBinding listItemBinding; if (convertView != null) { listItemBinding = (ViewDataBinding) convertView.getTag(); } else { listItemBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.item_pages, parent, false); convertView = listItemBinding.getRoot(); convertView.setTag(listItemBinding); } listItemBinding.setVariable(BR.pages,pageBeenList.get(position)); listItemBinding.executePendingBindings(); // listItemBinding.setButtonclick(new ButtonClick(MainActivity.this,position)); return convertView; } }
} else { listItemBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.item_filter, parent, false); convertView = listItemBinding.getRoot(); convertView.setTag(listItemBinding);
public DataBoundViewHolder(T binding) { super(binding.getRoot()); this.binding = binding; }
@Override public void onItemRangeInserted(ObservableList observableList, int start, int count) { if (mLayoutId == 0) { return; } startTransition(mTarget); final int end = start + count; LayoutInflater inflater = (LayoutInflater) mTarget.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); for (int i = end - 1; i >= start; i--) { Object entry = observableList.get(i); ViewDataBinding binding = bindLayout(inflater, mTarget, mLayoutId, entry); mTarget.addView(binding.getRoot(), start); } }
@Override public boolean onPreBind(ViewDataBinding binding) { if (mRecyclerView == null || mRecyclerView.isComputingLayout()) { return true; } int childAdapterPosition = mRecyclerView.getChildAdapterPosition(binding.getRoot()); if (childAdapterPosition == RecyclerView.NO_POSITION) { return true; } notifyItemChanged(childAdapterPosition, DB_PAYLOAD); return false; } };
/** * Clears all Views in {@code parent} and fills it with a View for * each item in {@code entries}, bound to the item. If layoutId * is 0, no Views will be added. * * @param parent The ViewGroup to contain the list of items. * @param layoutId The layout ID to inflate for the child Views. * @param entries The list of items to bind to the inflated Views. Each * item will be bound to a different child View. */ private static void resetViews(ViewGroup parent, int layoutId, List entries) { parent.removeAllViews(); if (layoutId == 0) { return; } LayoutInflater inflater = (LayoutInflater) parent.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); for (int i = 0; i < entries.size(); i++) { Object entry = entries.get(i); ViewDataBinding binding = bindLayout(inflater, parent, layoutId, entry); parent.addView(binding.getRoot()); } }
@Override public void onItemRangeChanged(ObservableList observableList, int start, int count) { if (mLayoutId == 0) { return; } LayoutInflater inflater = (LayoutInflater) mTarget.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); startTransition(mTarget); final int end = start + count; for (int i = start; i < end; i++) { Object data = observableList.get(i); ViewDataBinding binding = bindLayout(inflater, mTarget, mLayoutId, data); binding.setVariable(BR.data, observableList.get(i)); mTarget.removeViewAt(i); mTarget.addView(binding.getRoot(), i); } }
BaseBindingVH(ViewDataBinding binding) { super(binding.getRoot()); this.binding = binding; }
public BindingHolder(B binding) { super(binding.getRoot()); this.binding = binding; } }
public DataBindingViewHolder(@NonNull ViewDataBinding viewBinding) { super(viewBinding.getRoot()); this.viewBinding = viewBinding; } }
protected final View setAndBindContentView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @LayoutRes int layoutResId, Bundle savedInstanceState) { if(viewModel == null) { throw new IllegalStateException("viewModel must not be null and should be injected"); } binding = DataBindingUtil.inflate(inflater, layoutResId, container, false); binding.setVariable(BR.vm, viewModel); //noinspection unchecked viewModel.attachView((MvvmView) this, savedInstanceState); return binding.getRoot(); }
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mBinding = DataBindingUtil.inflate(inflater, viewLayoutRes(), container, false); afterInflateView(); return mBinding.getRoot(); }
@Override public void destroyItem(ViewGroup container, int position, Object object) { ViewDataBinding binding = (ViewDataBinding) object; binder.bind(binding, null); binding.executePendingBindings(); container.removeView(binding.getRoot()); }
@Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mViewModelBindingHelper.onCreate(this, savedInstanceState, this); return mViewModelBindingHelper.getBinding().getRoot(); }
@Override protected void onBind(@NonNull ViewDataBinding binding, Actor item, int position) { super.onBind(binding, item, position); binding.getRoot().setOnClickListener(v -> { ArrayList<String> urls = new ArrayList<>(); for (Actor actor : getData()) { urls.add(actor.img); } ((MovieDetailActivity) getContext()).gotoPreviewImages(urls, position); }); }
@Override protected void onBind(@NonNull ViewDataBinding binding, MovieStills.Stills item, int position) { super.onBind(binding, item, position); binding.getRoot().setOnClickListener(v -> { ArrayList<String> urls = new ArrayList<>(); for (MovieStills.Stills stills : getData()) { urls.add(stills.imgUrl); } ((MovieDetailActivity) getContext()).gotoPreviewImages(urls, position); }); } }
/** * Convenience method for binding's root View * * @return Root View */ public View getRootView() { return getView().getBinding().getRoot(); }
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { getViewModelHelper().performBinding(this); final ViewDataBinding binding = getViewModelHelper().getBinding(); if (binding != null) { return binding.getRoot(); } else { throw new IllegalStateException("Binding cannot be null. Perform binding before calling getBinding()"); } }
@Override protected void setDataBindingVariables(ViewDataBinding binding) { if (binding instanceof LayoutCombineChartBinding) { Drawable drawable = AppCompatResources.getDrawable(binding.getRoot().getContext(), R.drawable.ic_example); scatterDataSet.setShape(drawable); LayoutCombineChartBinding bd = (LayoutCombineChartBinding) binding; bd.combineChart.addDataSet(scatterDataSet); } }