Android 带有长标签的布局表单

Android 带有长标签的布局表单,android,android-edittext,android-linearlayout,Android,Android Edittext,Android Linearlayout,我遇到了一些Android布局问题的困难。我正在尝试制作一个供用户填写的表格。这个表单是以编程方式定义的(从我无法控制的服务器提供的配置),因此我必须以编程方式实现它。表单有几种不同的字段类型,但为了简单起见,我们可以假设它们都是简单的文本字段(EditText) 我目前将表单实现为垂直线性布局。对于每个字段,我都有一个水平的LinearLayout,其中包含一个用于字段标签的TextView和一个用于用户输入字段值的EditText。我将EditText设置为使用LinearLayout.La

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

我目前将表单实现为垂直线性布局。对于每个字段,我都有一个水平的LinearLayout,其中包含一个用于字段标签的TextView和一个用于用户输入字段值的EditText。我将EditText设置为使用LinearLayout.LayoutParams(填充父项、包裹内容)填充宽度

当TextView标签较短时,这种方法很有效,但当它较长时,会导致EditText非常小,用户很难输入值。理想情况下,我希望EditText至少为屏幕宽度的一半,必要时使用TextView标签包装。我尝试过使用TableRows的TableLayout,但仍然有困难。我也不希望强制使用网格,从而浪费带有短标签的行上的空间(假设满足其他要求,我在这方面很灵活)。我会尝试一些类似FlowLayout的方法来强制EditText换行到下一行,但Android不支持

有什么建议可以让我的工作做得更好吗?基于XML的解决方案将被接受,前提是我可以将它们移植到编程方法中。我还希望尽可能灵活地调整屏幕大小和方向,因此这意味着避免硬编码任何宽度


提前感谢。

尝试使用布局权重。您应该能够告诉您的两个项目各自占据屏幕的一半,例如,将两个项目的宽度设置为0,布局权重设置为1。

您是否尝试过使用布局权重?你应该能够告诉你的两个项目各自占据屏幕的一半,例如,通过设置两个项目的宽度=0和布局重量=1。我尝试过弄乱重量,但我不知道宽度=0的把戏。我一直在搞填充/匹配家长和包装内容。它确实可以防止EditText用短标签占用额外的空间,但对于我来说已经足够好了。谢谢谢谢你的帮助!最后,我对标签和字段分别使用了width=0和weights 2和3。我使用这些权重作为折衷,因为这种方法在标签较短时会留下空白。