我无法定位布局元素。我的TableLayout中的AutoComplete和它之后的按钮正在扩展TableRow大于屏幕的宽度。任何人都知道为什么?下面是我的XML代码以及问题的图片。
提前致谢!!
<?xml version="1.0" encoding="utf-8"?>
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView android:id="@+id/installation"
android:textSize="14sp" android:completionThreshold="3" />
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:id="@+id/btn_find" android:text="@string/btn_find"></Button>
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/error" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingTop="20px"
android:textColor="#FF0000" />
</TableRow>
答案 0 :(得分:39)
对于那些需要表格布局的人,请使用layout_weight选项。请参阅下面的代码。
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="6sp" android:id="@+id/detailsLayout">
<TableRow
android:layout_width="wrap_content"
android:id="@+id/TableRow03"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView06"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Detail 1"></TextView>
<TextView
android:text="@string/empty_value"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/sessionAudience"
android:layout_weight="1"></TextView>
</TableRow>
</TableLayout>
答案 1 :(得分:5)
默认情况下,TableRow
中的小部件有android:layout_width="wrap_content"
。这并不限制你的屏幕大小 - wrap_content
意味着“包装内容”,而不是“包装内容,但如果你不介意,请不要偏离屏幕边缘。” / p>
在这种情况下,您不需要使用TableLayout
和TableRows
集合,因为您没有表格。
因此,一种方法是使用RelativeLayout
并使用AutoCompleteTextView
使用android:layout_alignParentLeft="true"
和android:layout_alignParentRight="true"
。这会将其固定到RelativeLayout
的外边缘,您可以使用android:layout_width=fill_parent
调整其大小以填充屏幕。