如何从其视图模型设置Android视图的左边界和右边界?
我尝试如下定义视图模型:
public int marginRight;
public int marginLeft;
@BindingAdapter("android:layout_marginLeft")
public static void setLeftMargin(View view, int margin) {
ViewGroup.MarginLayoutParams marginParams = new ViewGroup.MarginLayoutParams(view.getLayoutParams());
int ml = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
margin,
view.getContext().getResources().getDisplayMetrics());
marginParams.leftMargin = ml;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(marginParams);
view.setLayoutParams(layoutParams);
}
@BindingAdapter("android:layout_marginRight")
public static void setRightMargin(View view, int margin) {
ViewGroup.MarginLayoutParams marginParams = new ViewGroup.MarginLayoutParams(view.getLayoutParams());
int ml = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
margin,
view.getContext().getResources().getDisplayMetrics());
marginParams.rightMargin= ml;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(marginParams);
view.setLayoutParams(layoutParams);
}
但是,问题是只有其中之一被设置。在绑定适配器中,所有边距都显示为0。
如何解决此问题?