由动态文本内容重新排列的布局

时间:2012-08-30 16:39:30

标签: android android-layout

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

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

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

我开始使用相对布局,其中包含一堆文本视图,所有文本视图都相应地定位,以实现我正在寻找的东西。

当显示的动态数据增长并拉伸其封闭的文本视图时,会出现问题。当然,静态标签不会增长,而且一切都会被错误对齐......

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

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

是表格布局的方法吗?我读过“他们通常不是最好的工具,因为它们来自LinearLayout,而不是最有效的布局控制”。

3 个答案:

答案 0 :(得分:2)

是的。使用带有xml中预定义布局的列表视图。使用simplelistadapter并将要用其填充的数据集传递给它。

修改

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

在您的特定场景中,我相信TableLayout会运行良好(尽管我也听过类似的效率/性能问题)。只要此活动的整个Viewgroup不复杂,我认为性能不会太明显。

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

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

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

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