0

我正在尝试布局一个相当基本的屏幕。它只是单击列表项后的详细信息视图屏幕。

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

名字:john
姓氏:doe
最后登录日期:昨天
附加信息:blah

我从一个相对布局开始,其中包含一堆文本视图,所有这些视图都相应地定位,以实现我想要的东西。

当正在显示的动态数据增长并拉伸其封闭的文本视图时,就会出现问题。当然,静态标签不会增长,一切都会错位......

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

我回避在垂直线性布局中堆叠一堆水平线性布局。

表格布局是要走的路吗?我读过“它们通常不是这样做的最佳工具,因为它们是从 LinearLayout 派生的,而不是最有效的布局控件”。

4

3 回答 3

2

就在这里。使用在 xml 中预定义布局的列表视图。使用 simplelistadapter 并将您要填充的数据集传递给它。

编辑

这是一个很棒的教程: http ://www.vogella.com/articles/AndroidListView/article.html

于 2012-08-30T16:42:46.180 回答
2

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

于 2012-08-30T16:49:21.790 回答
1

在您的特定场景中,我相信 TableLayout 会很好地工作(尽管我也听说过类似的效率/性能问题)。只要这个Activity的整个Viewgroup不复杂,我觉得性能不会太显眼。

如果您正在尝试使 RelativeLayout 版本工作,也许您可​​以尝试以下操作:使用 android:layout_alignParentLeft 将所有静态标签与左侧对齐,并使用 android 将每个标签与它们对应的动态 TextView 的顶部对齐:布局_对齐顶部。这应该保持静态 TextViews 与左侧对齐,同时与相对于它的动态视图对齐。

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

最后,我们可以将每个动态 TextView 设置为下一个,因为动态 TextView 是我们确定我们在此 RelativeLayout 中的垂直位置。每个视图都可以使用 android:layout_alignBelow 链接字段以垂直对齐。

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

于 2012-08-30T16:57:00.947 回答