2012-08-30 61 views
0

我正在尝试布置一个相当基本的屏幕。它只是一个列表项点击后的详细视图屏幕。由动态文本内容重新排列布局

最初我在寻找并排堆叠标签值类型的屏幕。例如, 例如,冒号的左边是静态文本,冒号的右边是基于点击行的动态值。

名字:                     约翰
名字:                     母鹿
上次登录日期:       昨天
附加信息:       等等

我已经开始与相应地定位到acheive什么像什么,我一直在寻找一堆中的所有文本视图相对布局。

当显示的动态数据增长并延伸其封闭文本视图时,会出现此问题。当然,如果有解决这种布局以不同的方式静态标签不成长,一切变得误对准......

我想知道......

我是从堆积回避掉垂直线性布局内的一组水平线性布局。

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

回答

1

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

如果您试图使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来链接字段以垂直对齐。

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

+0

@Fujimoto嘿,这听起来像一个很好的建议尝试。如果您提到将静态标签对齐到顶部(如果其各自的动态值文本视图),则我有一个很好的“aha,当然”时刻。欢呼 – topwik

+0

@Fujimoto嘿,你认为有一种方法,让静态显示的高度增加到动态值文本视图的底部?我想如果我想添加一个边框或一行背景颜色,最好使用表格布局....但是你的建议确实有效。 – topwik

+0

嗯......我不确定是否有一种简单的方法可以使一个视图的高度与RelativeView中的另一个视图的大小相匹配。你可以通过编程来完成,但是在那个时候,TableLayout可能会更好。如果我想到的东西,我可以让你知道并更新这个答案。 –

2

对于一个简单的格式如要创建我使用TableLayout建议。它使用起来很简单。正如你所说的,TableLayout的替代方案将是水平LinearLayouts在父垂直LinearLayout中。使用TableLayout也会自动为您调整右侧的动态内容。右侧的所有内容都将被视为一列,所以如果调整大小,它们都会调整大小以匹配。