当与宽度对齐时 LinearLayout layout_weight = “1” 需要单位

When aligned to width LinearLayout layout_weight = “1” requires unit

我使用android:layout_weight = "1"来对齐元素,但我想不通为什么要指定度量单位

这是什么原因?

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp">
        <Button
            android:text="+"
            android:layout_width="odp"
            android:layout_height="65dp"
            android:layout_weight="1"// requires a unit
            android:background="@android:color/black"
            android:textColor="@android:color/white"
            android:id="@+id/bttnPlus"
            android:layout_marginRight="20.0dp" />
        <Button
            android:text="-"
            android:layout_width="odp"
            android:layout_height="65dp"
            android:layout_weight="1"// requires a unit
            android:background="@android:color/black"
            android:textColor="@android:color/white"
            android:layout_marginRight="20.0dp"
            android:id="@+id/bttnMinuse" />
    </LinearLayout>

我认为问题不在于 layout_weight。你的 layout_width 有拼写错误

android:layout_width="0dp"

而不是

android:layout_width="odp"

不需要单位,是Visual-Studio的问题

在这个thread中:

它应该在 Visual-Studio 中修复 v16.9 Preview