2012-08-30 64 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也會自動爲您調整右側的動態內容。右側的所有內容都將被視爲一列,所以如果調整大小,它們都會調整大小以匹配。