即使我将它们设置为任何类型的 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_width
、width
、fill 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>
我认为这可能与 tablelayout
有关,但布局中有 2 个按钮,我无法更改其中一个的宽度,它们填满了屏幕,但其中一个是真的很小,另一个占据了大约 80% 的屏幕宽度。我已经尝试填充、layout_width
、width
、fill 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>