【问题标题】:Android: Fixed Width in Linear LayoutAndroid:线性布局中的固定宽度
【发布时间】:2023-03-22 14:37:01
【问题描述】:

我有以下布局

LinearLayout
    orientation:horizontal

    CheckBox
        visibility:invisible
        layout_weight:0

    TextView
        layout_weight:1

    TextView
        layout_weight:1

    TextView
        layout_weight:1

    TextView
        layout_weight:1

我的 ActionBar 中有一个 EDIT 按钮,点击后 CheckBox 可见

问题是,当显示复选框时,所有 TextView 都向右移动,

有什么办法可以让 CheckBox 列固定宽度,这样就不会影响其他部分?

【问题讨论】:

  • 您是否尝试过为复选框设置 layout_weight:1 ?
  • 把layout_weight全部去掉就行了,都一样就没用了。
  • @StefandeBruijn layout_weight 使列具有固定的宽度,并在大小更改时在布局中延伸。
  • @ChrisConway 是的,我尝试为复选框设置 layout_weight:1,但更糟糕的是,它占用了更多空间。

标签: android android-linearlayout multiple-columns fixed android-layout-weight


【解决方案1】:

我测试了这段代码,当它可见时它不会跳转:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <CheckBox
        android:visibility="invisible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:text="test"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>
    <TextView
        android:text="test"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>
    <TextView
        android:text="test"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>
    <TextView
        android:text="test"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"/>
</LinearLayout>

如果您在任何时候,使您的复选框的可见性消失,它不会“保留”其空间。

【讨论】: