带有长标签的布局表单

时间:2011-01-11 00:32:47

标签: android android-edittext android-linearlayout

我对Android布局问题有些困难。我正在尝试为用户填写表单。这个表单是以编程方式定义的(从我无法控制的服务器提供的配置),因此我必须以编程方式实现它。表单有几种不同的字段类型,但为简单起见,我们可以假设它们都是简单的文本字段(EditText)。

我目前将表单实现为垂直LinearLayout。对于每个字段,我有一个水平LinearLayout,其中包含一个字段标签的TextView和一个EditText,供用户输入字段的值。我将EditText设置为使用LinearLayout.LayoutParams(FILL_PARENT,WRAP_CONTENT)填充宽度。

当TextView标签很短时,这很有效,但是当它很长时会导致EditText非常小并且使用户难以输入值。理想情况下,如果需要,我希望EditText至少是屏幕宽度的一半,并使用TextView标签包装。我已经尝试过使用TableRows的TableLayout,但我仍然遇到了困难。我还宁愿不强制网格,因此浪费了短标签线上的空间(假设满足其他要求我对此很灵活)。我会尝试类似FlowLayout来强制EditText换行到下一行,但Android上不支持它。

关于如何让这项工作更好的任何建议?假设我可以将它们移植到程序化方法中,那么基于XML的解决方案将被接受。我还希望尽可能灵活地调整屏幕尺寸和方向,这意味着要避免对任何宽度进行硬编码。

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试使用布局权重。您应该可以告诉您的两个项目占据屏幕的一半,例如,通过为两者设置width = 0和layout_weight = 1。