即使我将它们设置为任何类型的 dp,按钮的宽度也不会改变,但由于某种原因高度有效

Width of buttons wont change even if i set them to any kind of dp, but height for some reason works

我认为这可能与 tablelayout 有关,但布局中有 2 个按钮,我无法更改其中一个的宽度,它们填满了屏幕,但其中一个是真的很小,另一个占据了大约 80% 的屏幕宽度。我已经尝试填充、layout_widthwidthfill parent 和更改其他内容,但没有任何效果。 我可以自由改变高度,但宽度无法控制,按钮上的手柄也不会调整它的大小。

这是它的样子

http://postimg.org/image/b1f77b44v/

    <TextView
            android:id="@+id/lblName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
        android:text="@string/name" 
        android:textColor="@color/field_title"  />

    <EditText
        android:id="@+id/editName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:padding="3dip"
        android:textColor="@color/field" >

        <requestFocus android:layout_width="match_parent" />

    </EditText>

    <TextView
        android:id="@+id/lblDesc"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/description"
        android:textColor="@color/field_title"  />

    <EditText
        android:id="@+id/editDesc"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:inputType="textMultiLine"
        android:maxWidth="180dp"
        android:padding="3dp"
        android:singleLine="false"
        android:textColor="@color/field" />

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="50dp"
            android:layout_height="500dp" >

            <TextView
                android:id="@+id/lblStatus"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/status"
                android:textColor="@color/field_title" />

            <Button
                android:id="@+id/StatusChangeButton"
                android:layout_width="30dp"
                android:layout_height="fill_parent"
                android:background="@drawable/ButtonTest"
                android:maxWidth="50dip"
                android:text="@string/change"
                android:textColor="@color/button_text"
                android:width="40dp" />

        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="50dp"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/lblduedate"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/due_date"
                android:textColor="@color/field_title" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow5"
            android:baselineAligned="true" >

            <Button
                android:id="@+id/btnCancel"
                android:layout_width="fill_content"
                android:layout_height="wrap_content"
                android:text="@string/cancel"
                android:textColor="@color/button_text" />

            <Button
                android:id="@+id/btnSave"
                android:layout_width="60dp"
                android:layout_height="50dp"

                android:text="@string/save"
                android:textColor="@color/button_text" />

        </TableRow>
    </TableLayout>

</LinearLayout>

试试这个而不是 tableRow

 <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:layout_gravity="bottom"
            android:id="@+id/l1" >       
        <Button
                    android:id="@+id/btnCancel"
                    android:layout_width="fill_content"
                    android:layout_height="wrap_content"
                    android:text="@string/cancel"
                    android:layout_heigh="1"<!---add this-->
                    android:textColor="@color/button_text" />

                <Button
                    android:id="@+id/btnSave" 
                    android:text="@string/save"
                    android:layout_heigh="1"<!---add this-->
                    android:textColor="@color/button_text" />
         </LinearLayout>

您可以使用 权重 来指定每个按钮的部分与整个 table 原始宽度的比例。 但是我不确定你为什么选择使用Table。更好的方法是使用线性布局。

    <TableRow
        android:id="@+id/tableRow5"
        android:baselineAligned="true" >

        <Button
            android:id="@+id/btnCancel"
            android:layout_width="fill_content"
            android:layout_height="wrap_content"
            android:text="@string/cancel"
            android:textColor="@color/button_text" 
            android:layout_weight="1"/>

        <Button
            android:id="@+id/btnSave"
            android:layout_width="fill_content"
            android:layout_height="wrap_content"
            android:text="@string/save"
            android:textColor="@color/button_text" 
            android:layout_weight="1"/>

    </TableRow>