Android数据绑定:条件格式设置layout_weight

时间:2017-02-16 09:57:27

标签: android android-databinding

如何使用android数据绑定在xml中设置layout_weight?在dimens文件夹中,我们提供dp / sp中的值。

4 个答案:

答案 0 :(得分:1)

在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);
}

答案 1 :(得分:0)

使用与之前讨论的android:layout_widthandroid:layout_height相同的技术:

How to bind a layout_width and layout_height using data binding in Android

您必须创建自己的BindingAdapter。

答案 2 :(得分:0)

这是一个对我有用的绑定适配器,您的视图确实需要在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
    }
}

答案 3 :(得分:-1)

试试这个:

@BindingAdapter("layout_weight")
    fun setLayoutWeight(view: View, weight: Float) {
        view.layoutParams = TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,
                                                     TableLayout.LayoutParams.WRAP_CONTENT,
                                                     weight)
    }