Android GridLayout 和 EditText

3

一张图片胜过千言万语。:) 右上角未正确显示。谢谢!

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="15dp"
tools:context=".MainActivity" >

                    <GridLayout
                         android:layout_width="fill_parent"
                         android:layout_height="fill_parent"
                         android:columnCount="2"
                         android:rowCount="2"
                         android:layout_weight="6" >

                         <TextView 
                             android:text="Blala:"
                             android:layout_weight="1"
                              />
                         <EditText 
                             android:layout_width="fill_parent"
                             android:layout_height="wrap_content"
                             android:layout_gravity="center"
                             android:singleLine="true"
                             android:layout_weight="2"
                             />
                         <TextView 
                             android:text="Blalalallalalalalallaa:"
                             android:layout_weight="1"
                              />
                         <EditText 
                             android:layout_width="fill_parent"
                             android:layout_height="wrap_content"
                             android:singleLine="true"
                             android:layout_weight="2" />
                     </GridLayout>

更新:权重 这里输入图片描述

1
看起来EditText占据了宽度。您可以像在TableLayouts的情况下一样使用列权重,以确保EditText在视图内。 - Gaurav Arora
感谢您的评论。我尝试了这个方法,但对我没有用。 - jamalM
1
这个想法是在任何布局中使用权重时将宽度标记为0。请参考此链接,http://developer.android.com/training/basics/firstapp/building-ui.html#Weight - Gaurav Arora
2个回答

9

Answer:

You can use next layouting:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:columnCount="2" 
>
<TextView
android:text="Blala:" 
android:layout_row="0" 
android:layout_gravity="fill_horizontal" 
/>
<EditText
android:singleLine="true" 
android:layout_gravity="fill_horizontal" 
/>
<TextView
android:text="Blal234243a:" 
android:layout_row="0" 
android:layout_gravity="fill_horizontal" 
/>
<EditText
android:singleLine="true" 
android:layout_gravity="fill_horizontal" 
/>

</GridLayout>


0

任何属性都可以应用于视图(可视控件)的水平或垂直大小。它用于根据其内容或其父布局的大小设置视图或布局的大小,而不是明确指定尺寸。

fill_parent(在API级别8及更高版本中已弃用并更名为MATCH_PARENT)

将小部件的布局设置为fill_parent将强制其扩展以占用其放置的布局元素中可用的所有空间。这大致相当于将Windows窗体控件的停靠样式设置为填充。

将顶级布局或控件设置为fill_parent将强制其占用整个屏幕。

wrap_content

将视图的大小设置为wrap_content将强制其仅扩展到足以包含其包含的值(或子控件)。对于控件-如文本框(TextView)或图像(ImageView)-这将包装所显示的文本或图像。对于布局元素,它将调整布局大小以适应添加为其子项的控件/布局。

这大致相当于将Windows窗体控件的AutoSize属性设置为True。


尝试手动设置EditText字段的宽度,可以像这样做...android:layout_width="160dp"(或类似的设置),并根据您的TextView宽度设置EditText的宽度。 - Android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接