Android - UI 元素离开屏幕
我在定位布局元素时遇到问题。我的 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>
I'm having trouble positioning the layout elements. The AutoComplete in my TableLayout and the button after it are expanding the TableRow larger than the width of the screen. Anyone have an idea why? Below is my XML code as well as a picture of the problem.
Thanks in advance!!
<?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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于确实需要表格布局的用户,请使用layout_weight选项。请参阅下面的代码。
For the ones that do need the table layout, use the layout_weight option. See code below.
默认情况下,
TableRow
中的小部件具有android:layout_width="wrap_content"
。这并不限制您的屏幕大小 -wrap_content
表示“换行内容”,而不是“换行内容,但如果您不介意,请不要超出屏幕边缘” ”。在这种情况下,您不需要使用
TableLayout
和一组TableRows
,因为您没有表格。因此,一种方法是使用
RelativeLayout
并让您的AutoCompleteTextView
使用android:layout_alignParentLeft="true"
和android:layout_alignParentRight= “真”
。这会将其固定到RelativeLayout
的外边缘,您可以使用android:layout_width=fill_parent
调整其大小以填充屏幕。By default, widgets in a
TableRow
haveandroid:layout_width="wrap_content"
. That does not limit you to the size of the screen --wrap_content
means "wrap content", not "wrap content but please don't go off the edge of the screen, if you don't mind".In this case, you do not need to use a
TableLayout
and set ofTableRows
, since you do not have a table.So, one approach is to use a
RelativeLayout
and have yourAutoCompleteTextView
useandroid:layout_alignParentLeft="true"
andandroid:layout_alignParentRight="true"
. That will pin it to the outer edges of theRelativeLayout
, which you can size withandroid:layout_width=fill_parent
to fill the screen.