是否有可能做这样的事情:ConstraintLayout与数据绑定
XML:
<android.support.constraint.Guideline
app:layout_constraintGuide_percent="@{viewModel.guidelinePercent}"
/>
视图模型:
@Bindable
public float getGuidelinePercent() {
return condition ? 0.6f : 0.8f;
}
我得到这个错误:
Cannot find the setter for attribute 'app:layout_constraintGuide_percent' with parameter type float on android.support.constraint.Guideline.
我有三ED与BindingAdaptor,但它不会改变的值:
视图模型:
@BindingAdapter(value = {"constraintPercent"})
public static void setConstraintPercent(Guideline view, float percent){
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.setGuidelinePercent(view.getId(), percent);
}
XML:
<android.support.constraint.Guideline
app:constraintPercent="@{viewModel.guidelinePercent}"
/>
有什么想法?
谢谢。
谢谢你的方式去改变指南LayoutParams。 Yup在Bindable的帮助下使用BindAdapter来提供参数值是一种强大的武器,也是使任何视图配置“databindable”的唯一方法。 :) – GuilhE
@GuilhE我真的解决了setter错误,但我猜'LayoutParams'代码是一个奖金。 :) – Cheticamp