[英]Button width in Android TableLayout
我有一个TableLayout,底部有一个按钮。 我的问题是按钮伸展以填充列的整个宽度,即使我不希望它那么宽。
XML看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:stretchColumns="*"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow android:layout_height="wrap_content"
android:layout_width="fill_parent">
<CheckBox android:id="@+id/check1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text 1"/>
<CheckBox android:id="@+id/check2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text 1"/>
</TableRow>
<TableRow android:layout_height="wrap_content"
android:layout_width="fill_parent">
<CheckBox android:id="@+id/check3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Even some more text 2"/>
<CheckBox android:id="@+id/check4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Even some more text 2"/>
</TableRow>
<TableRow android:layout_height="wrap_content"
android:layout_width="fill_parent">
<CheckBox android:id="@+id/check5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="An even longer line of text 3"/>
<CheckBox android:id="@+id/check6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Another longer line of text 3"/>
</TableRow>
<EditText
android:id="@+id/myEditText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:singleLine="false"
android:text="Enter some text"
/>
<TableRow>
<Button android:id="@+id/SaveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save">
</Button>
</TableRow>
</TableLayout>
即使我为按钮设置了显式宽度,它也会忽略它。 例如,如果我有:
<Button android:id="@+id/SaveButton"
android:layout_width="100sp"
android:layout_height="100sp"
android:text="Save">
</Button>
...按钮变高但宽度仍然延伸以填充列。
我希望按钮大约是当前宽度的一半,以列为中心。 提前致谢!!
@mbaird是对的: android:stretchColumns="*"
总是会拉伸列的宽度。 但是,您仍然可以通过将FrameLayout放入拉伸列宽度的列中,然后将按钮放在其中来获得列中所需的行为。 然后,您可以根据需要设置按钮的大小,并将其置于FrameLayout中:
<TableRow>
<FrameLayout
android:layout_height="wrap_content">
<Button
android:id="@+id/SaveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="40dp"
android:paddingRight="40dp"
android:text="Save">
</Button>
</FrameLayout>
</TableRow>
我很确定android:stretchColumns="*"
总会导致按钮被拉伸。 您是否考虑过将该按钮放在TableLayout外面?
从文档中:TableLayout的子项不能指定layout_width属性。 宽度始终为MATCH_PARENT。 但是,layout_height属性可以由子项定义; 默认值为WRAP_CONTENT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.