@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);
            }
        }
A listener to watch for changes in an Observable list and
animate the change.
DataBindingDataBoundList/app/src/main/java/com/example/android/databoundlist/ListBindingAdapters.java