@BindingAdapter(value = {"onRefreshListener", "refreshingAttrChanged"}, requireAll = false)
public static void setOnRefreshListener(final SwipeRefreshLayout view,
final SwipeRefreshLayout.OnRefreshListener listener,
final InverseBindingListener refreshingAttrChanged) {
SwipeRefreshLayout.OnRefreshListener newValue = new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (listener != null) {
if (refreshingAttrChanged != null) {
refreshingAttrChanged.onChange();
}
listener.onRefresh();
}
}
};
SwipeRefreshLayout.OnRefreshListener oldValue = ListenerUtil.trackListener(view, newValue, R.id.onRefreshListener);
if (oldValue != null) {
view.setOnRefreshListener(null);
}
view.setOnRefreshListener(newValue);
}
java类android.databinding.InverseBindingListener的实例源码
BindingConfig.java 文件源码
项目:Android-MVVMFramework
阅读 42
收藏 0
点赞 0
评论 0
BindingConfig.java 文件源码
项目:Android-MVVMFramework
阅读 37
收藏 0
点赞 0
评论 0
@BindingAdapter(value = {"onRefreshListener", "refreshingAttrChanged"}, requireAll = false)
public static void setOnRefreshListener(final SwipeRefreshLayout view,
final SwipeRefreshLayout.OnRefreshListener listener,
final InverseBindingListener refreshingAttrChanged) {
SwipeRefreshLayout.OnRefreshListener newValue = new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (listener != null) {
if (refreshingAttrChanged != null) {
refreshingAttrChanged.onChange();
}
listener.onRefresh();
}
}
};
SwipeRefreshLayout.OnRefreshListener oldValue = ListenerUtil.trackListener(view, newValue, R.id.onRefreshListener);
if (oldValue != null) {
view.setOnRefreshListener(null);
}
view.setOnRefreshListener(newValue);
}
HuePickerBindingAdapters.java 文件源码
项目:spline
阅读 35
收藏 0
点赞 0
评论 0
/**
* This is how you implement 2-way data binding of a custom attribute if you want to maintain
* a custom listener interface - OnHueChangeListener, in this case - while also leveraging
* the synthetic attributes hueAttrChanged (the InverseBindingListener). For an example of
* how to implement custom 2-way binding with just the synthetic AttrChanged attribute's
* InverseBindingListener, see DocumentView or LayerListView's currentLayer 2-way binding
* (along with the InverseBindingMethod declarations in DocumentViewModelBindingAdapters).
*
* @param view The view we're 2-way binding to.
* @param onHueChangeListener The OnHueChangeListener bound by the developer on the view
* in question.
* @param inverseBindingListener Synthetic attribute representing an InverseBindingListener
* for changes to the hue attribute.
*/
@BindingAdapter(value = {"onHueChange", "hueAttrChanged"}, requireAll = false)
public static void setListeners(HuePicker view,
final HuePicker.OnHueChangeListener onHueChangeListener,
final InverseBindingListener inverseBindingListener) {
HuePicker.OnHueChangeListener newListener;
if (inverseBindingListener == null) {
// If the synthetic listener param is null, just keep track of the listener set in
// the binding
newListener = onHueChangeListener;
} else {
// Otherwise define a new listener to wraps both listeners and invoke them at the
// right time within the new listener if they are non-null
newListener = new HuePicker.OnHueChangeListener() {
@Override
public void onHueChange(HuePicker huePicker, float hue) {
if (onHueChangeListener != null) {
onHueChangeListener.onHueChange(huePicker, hue);
}
inverseBindingListener.onChange();
}
};
}
// Use track listener to record listener we're adding and return any old listeners
// registered through this method so that on rebind we don't add duplicate listeners
HuePicker.OnHueChangeListener oldListener = ListenerUtil.trackListener(view, newListener,
R.id.hueChangeListener);
// Remove the old listener we set using this BindingAdapter, if there is one
if (oldListener != null) {
view.removeHueChangeListener(oldListener);
}
// Add our new listener
if (newListener != null) {
view.addHueChangeListener(newListener);
}
}
LayerListView.java 文件源码
项目:spline
阅读 36
收藏 0
点赞 0
评论 0
public void setCurrentLayerAttrChanged(InverseBindingListener listener) {
mAdapter.setCurrentLayerAttrChanged(listener);
}
DocumentView.java 文件源码
项目:spline
阅读 44
收藏 0
点赞 0
评论 0
public void setCurrentLayerAttrChanged(InverseBindingListener listener) {
mCurrentLayerAttrChangedListener = listener;
}
DocumentView.java 文件源码
项目:spline
阅读 44
收藏 0
点赞 0
评论 0
public void setViewportXAttrChanged(InverseBindingListener listener) {
mViewportXAttrChangedListener = listener;
}
DocumentView.java 文件源码
项目:spline
阅读 37
收藏 0
点赞 0
评论 0
public void setViewportYAttrChanged(InverseBindingListener listener) {
mViewportYAttrChangedListener = listener;
}
DocumentView.java 文件源码
项目:spline
阅读 37
收藏 0
点赞 0
评论 0
public void setViewportWidthAttrChanged(InverseBindingListener listener) {
mViewportWidthAttrChangedListener = listener;
}
DocumentView.java 文件源码
项目:spline
阅读 38
收藏 0
点赞 0
评论 0
public void setViewportHeightAttrChanged(InverseBindingListener listener) {
mViewportHeightAttrChangedListener = listener;
}
SaturationValuePicker.java 文件源码
项目:spline
阅读 37
收藏 0
点赞 0
评论 0
public void setSaturationAttrChanged(InverseBindingListener listener) {
mSaturationAttrChangedListener = listener;
}
SaturationValuePicker.java 文件源码
项目:spline
阅读 45
收藏 0
点赞 0
评论 0
public void setValueAttrChanged(InverseBindingListener listener) {
mValueAttrChangedListener = listener;
}
RulerView.java 文件源码
项目:spline
阅读 32
收藏 0
点赞 0
评论 0
public void setViewportStartAttrChanged(InverseBindingListener listener) {
mViewportStartAttrChangedListener = listener;
}
RulerView.java 文件源码
项目:spline
阅读 31
收藏 0
点赞 0
评论 0
public void setHighlightStartAttrChanged(InverseBindingListener listener) {
mHighlightStartAttrChangedListener = listener;
}
LayerListAdapter.java 文件源码
项目:spline
阅读 36
收藏 0
点赞 0
评论 0
public void setCurrentLayerAttrChanged(InverseBindingListener currentLayerAttrChanged) {
mCurrentLayerAttrChangedListener = currentLayerAttrChanged;
}