问题描述
如何使用android数据绑定在xml中设置layout_weight? 在 dimens 文件夹中,我们提供 dp / sp 中的值。
1楼
这是一个对我有用的绑定适配器,你的视图确实需要在一个 LinearLayout 中,我认为如果你想设置权重:
@BindingAdapter("android:layout_weight")
fun setLayoutWeight(view: View, weight: Float) {
val layoutParams = view.layoutParams as? LinearLayout.LayoutParams
layoutParams?.let {
it.weight = weight
view.layoutParams = it
}
}
2楼
只需将此方法添加到与xml相关的java文件中即可:
@BindingAdapter("android:layout_weight")
public static void setLayoutWeight(View view, int weight) {
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) view.getLayoutParams();
layoutParams.weight = weight;
view.setLayoutParams(layoutParams);
}
3楼
使用相同的技术作为android:layout_width
和android:layout_height
,前面已经讨论:
您必须创建自己的 BindingAdapter。
4楼
尝试这个:
@BindingAdapter("layout_weight")
fun setLayoutWeight(view: View, weight: Float) {
view.layoutParams = TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,
TableLayout.LayoutParams.WRAP_CONTENT,
weight)
}