LinearLayout 2视图,如果一个视图消失了,虽然我更新了weightSum,但它不会使另一个视图居中

红段

这是我的布局:

 <LinearLayout
        android:id="@+id/car_linear_layout"
        android:layout_toRightOf="@id/car_image"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:layout_height="50sp"
        android:weightSum="2">
        <TextView
            android:id="@+id/car_layout_name"
            android:textSize="17sp"
            android:maxLines="1"
            android:textColor="@color/black"
            android:ellipsize="end"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>
        <TextView
            android:id="@+id/car_layout_license"
            android:textSize="17sp"
            android:maxLines="1"
            android:ellipsize="end"
            android:textColor="@color/black"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="1"/>
    </LinearLayout>

这是我的代码:

    if (userVehicleID != null) {
        carLayout.setWeightSum(2);
        carLicense.setText("test");
    }else{
        carLayout.setWeightSum(1);
        carLicense.setVisibility(View.GONE);
    } 

但是,即使这样,如果我调试并进入ELSE,它将仅显示第一个textview,但不会居中。为什么?

ADM

只需android:weightSum从父布局中删除即可

所以,如果你设置任何孩子的知名度,GONE那么其他孩子会覆盖weight.If在你的情况父布局wrap_content使孩子一样后GONE,这将使你的父母LinearLayout高度等于高度VISIBLETextView的。这是layout_weight工作方式

<LinearLayout
    android:id="@+id/car_linear_layout"
    android:layout_toRightOf="@id/car_image"
    android:layout_width="wrap_content"
    android:orientation="vertical"
    android:layout_centerVertical="true"
    android:gravity="center_vertical"
    android:layout_height="50sp"
   >
    <TextView
        android:id="@+id/car_layout_name"
        android:textSize="17sp"
        android:maxLines="1"
        android:textColor="@color/black"
        android:ellipsize="end"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"/>
    <TextView
        android:id="@+id/car_layout_license"
        android:textSize="17sp"
        android:maxLines="1"
        android:ellipsize="end"
        android:textColor="@color/black"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"/>
</LinearLayout>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章