Android 通过动态文本内容重新调整布局

Android 通过动态文本内容重新调整布局,android,android-layout,Android,Android Layout,我试图设计一个相当基本的屏幕。单击列表项后,它只是一个详细信息视图屏幕 最初,我希望实现一个并排堆叠的标签值类型的屏幕。 例如,其中冒号左侧是静态文本,冒号右侧是基于单击行的动态值 名字:约翰 姓氏:doe 上次登录日期:昨天 其他信息:废话 我从一个相对布局开始,其中有一堆文本视图,所有视图都相应地定位,以实现类似我所寻找的内容 当显示的动态数据增长并拉伸其封闭文本视图时,会出现问题。当然,静态标签不会增长,所有东西都会对齐错误 我想知道是否有不同的方法来处理这种布局 我不敢在垂直线性布局中堆

我试图设计一个相当基本的屏幕。单击列表项后,它只是一个详细信息视图屏幕

最初,我希望实现一个并排堆叠的标签值类型的屏幕。 例如,其中冒号左侧是静态文本,冒号右侧是基于单击行的动态值

名字:约翰
姓氏:doe
上次登录日期:昨天
其他信息:废话

我从一个相对布局开始,其中有一堆文本视图,所有视图都相应地定位,以实现类似我所寻找的内容

当显示的动态数据增长并拉伸其封闭文本视图时,会出现问题。当然,静态标签不会增长,所有东西都会对齐错误

我想知道是否有不同的方法来处理这种布局

我不敢在垂直线性布局中堆叠一堆水平线性布局


桌子的布局是正确的吗?我读到“它们通常不是最好的工具,因为它们源自线性布局,而不是最有效的布局控件。”

是的。使用具有xml预定义布局的listview。使用SimpleListatAdapter并将要填充的数据集传递给它

编辑

以下是一个很棒的教程:
是的,有。使用具有xml预定义布局的listview。使用SimpleListatAdapter并将要填充的数据集传递给它

编辑

以下是一个很棒的教程:

对于您想要创建的简单表单,我建议使用TableLayout。它使用起来很简单。正如您所说,表格布局的替代方案是父垂直线性布局中的水平线性布局。使用TableLayout还会自动为您对齐右侧的动态内容。右侧的所有内容都将被视为一列,因此如果调整大小,它们都会调整大小以匹配。

对于您想要创建的简单表单,我建议使用TableLayout。它使用起来很简单。正如您所说,表格布局的替代方案是父垂直线性布局中的水平线性布局。使用TableLayout还会自动为您对齐右侧的动态内容。右侧的所有内容都将被视为一列,因此如果调整大小,它们都会调整大小以匹配。

在您的特定场景中,我相信TableLayout会很好地工作(尽管我也听到过类似的效率/性能问题)。只要此活动的整个视图组不复杂,我认为性能不会太明显

如果您试图使RelativeLayout版本正常工作,也许您可以尝试以下方法:使用android:layout\u alignParentLeft将所有静态标签向左对齐,并使用android:layout\u alignTop将每个标签对齐到动态文本视图的顶部。这将使静态文本视图与左侧对齐,同时与相对于它的动态视图对齐

现在这些视图已经对齐,我们可以使用android:layout\u toRightOf将动态视图水平对齐到最长的静态文本视图。从那里,所有剩余的动态视图也可以android:layout_alignLeft到该锚动态文本视图,或者也可以与锚相同的方式对齐到最长的静态文本视图。这解决了所有动态文本视图的水平对齐问题

最后,我们可以将每个动态文本视图设置为下一个,因为动态文本视图决定了我们在这个相对视图中的垂直位置。每个视图都可以使用下面的android:layout\u aligndown链接字段以垂直对齐


我相信这对你应该有用,如果你想要一个代码示例,我可以在今天晚些时候编辑这篇文章。

在你的特定场景中,我相信TableLayout会很好地工作(尽管我也听到过类似的效率/性能问题)。只要此活动的整个视图组不复杂,我认为性能不会太明显

如果您试图使RelativeLayout版本正常工作,也许您可以尝试以下方法:使用android:layout\u alignParentLeft将所有静态标签向左对齐,并使用android:layout\u alignTop将每个标签对齐到动态文本视图的顶部。这将使静态文本视图与左侧对齐,同时与相对于它的动态视图对齐

现在这些视图已经对齐,我们可以使用android:layout\u toRightOf将动态视图水平对齐到最长的静态文本视图。从那里,所有剩余的动态视图也可以android:layout_alignLeft到该锚动态文本视图,或者也可以与锚相同的方式对齐到最长的静态文本视图。这解决了所有动态文本视图的水平对齐问题

最后,我们可以将每个动态文本视图设置为下一个,因为动态文本视图决定了我们在这个相对视图中的垂直位置。每个视图都可以使用下面的android:layout\u aligndown链接字段以垂直对齐


我相信这应该对你有用,如果你想要一个代码示例,我可以在今天晚些时候编辑这篇文章。

@Fujimoto嘿,这听起来是一个很好的尝试建议。我有一个很好的“啊哈,当然”的时刻,当您提到将静态标签与顶部对齐,如果其各自的动态值文本视图。cheers@Fujimoto嘿,你认为有一种方法可以让静态显示的高度增加到动态值文本视图的底部吗?我想如果我想添加边框或行背景色,最好使用表格布局。。。。但是你的建议行得通。嗯。。。我不确定是否有一种简单的方法可以让一个视图的高度与相对论中另一个视图的大小相匹配