2010-07-28 52 views
1

好吧,我的問題是,我有n-TextViews,它們將以編程方式添加到TableLayout中。這完全沒有關係,我如何設計這些TextView或TableLayout,每次我添加一些東西時,都會在其他TextViews之後的底部添加TextView。 這些視圖有一個可變的寬度,這是從他們的textlength和一些像素(WRAP_CONTENT只是100%寬度...)計算出來的。將TextViews添加到TableLayout「可堆疊」

It is like this right now: 
------------------------------------------ 
[TextView 1] 
[TextView 2] 
[TextView 3] 
[TextView 4] 
------------------------------------------ 

And it should be like: 
------------------------------------------ 
[TextView 1] [TextView 2] [TextView 3] 
[TextView 4] 
------------------------------------------ 

其實我不需要一個TableLayout。無論你想要什麼,我都可以改變它。當然,如果這些TextViews可以獲得WRAP_CONTENT寬度,那將會更好。

編輯: Btw。方向=「水平」的LinearLayout會在第一個對話框中添加TextView,但最終它不會換行到下一行,只會將它們添加到右側並將其拆分,如下所示:

------------------------------------------ 
[TextView 1] [TextView 2] [TextView 3] [Te 
             [xt 
             Vie 
             w 4 
             ] 
------------------------------------------ 

回答

0

我想你可以嘗試這樣的事情:
- 將一個TableLayout爲您Activity的根,與FILL_PARENT寬度和高度。
- 然後獲取其寬度並將其存儲在變量(mWidth)中。
- 創建一個TableRow,添加第一個TextView並將其寬度存儲在變量(mTotalWidth)中,然後將TextView放入該行。
- 當您想要添加新的Textview時,您可以創建它,獲取其寬度並在將其添加到mTotalWidth時計算總和。
現在
if mTotalWidth < mWidth,你添加TextView到當前行,並增加mTotalWidth
else您創建一個新的TableRow,把你的Textview在裏面,mTotalWidth的值更改爲這個TextView的寬度。
然後,您可以對所有視圖重複此操作。這看起來有點亂,但我認爲它可以工作。

+0

這聽起來像個好主意!它有點瘋狂,但很好:) 在我的情況下唯一的缺點,我這樣構建它:當你點擊ListView中的一些行時,它將TextViews添加到頂部。當我單擊TextViews本身時,它們將從頂部移除。 此解決方案將是一個問題,這種解決方案... – 2010-07-29 12:12:47

+0

其實,我沒有看到任何問題。對於'TableLayout'有一個removeView方法,所以問題在哪裏? http://developer.android.com/reference/android/view/ViewGroup.html#removeView%28android.view.View%29 – Sephy 2010-07-29 12:18:28

+0

我將不得不再次檢查長度,如果仍然有行中的TextView。比如:在TableRow中是否有一個TextView,然後不要刪除TableRow,如果TableRow中沒有TextView,則刪除TableRow。如果在第5行的第二個TableRow中有3個TextView,並且我刪除了其中的一個,那麼其餘的呢? ;) – 2010-07-30 07:32:25

0

您可能想要使用GridView作爲您正在嘗試執行的操作。我不相信有任何佈局類支持你想要做的事情。

如果您使用GridView,那麼您應該可以使用ArrayAdapter,因爲它已經可以輕鬆創建TextView了。

如果你只是想要一個佈局,如果下一個孩子不適合當前行,那麼你將不得不寫一個自定義佈局類來做。

+0

好吧,一個GridView的缺點是,單個孩子沒有動態的寬度。我的TextView有時很小,有時和屏幕一樣寬。 – 2010-07-29 12:10:42