好的,我的问题是,我有n-TextViews,它们将以编程方式添加到TableLayout中。这完全无关紧要,我如何设置这些TextViews或TableLayout的样式,每次添加内容时,它都会在其他TextViews之后的底部添加TextView。 这些视图有一个可变宽度,它是根据文本长度和一些像素计算出来的(WRAP_CONTENT只是100%宽度......)。
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作为宽度,那就更好了。
编辑: 顺便说一句。具有orientation =“horizontal”的LinearLayout在第一次更正时添加TextViews,但最后它不会换行到下一行,它只是将它们添加到右侧并且它将被拆分,如:
------------------------------------------
[TextView 1] [TextView 2] [TextView 3] [Te
[xt
Vie
w 4
]
------------------------------------------
答案 0 :(得分:0)
您可能希望使用GridView
来执行您要执行的操作。我不相信有任何布局类支持您想要做的事情。
如果您选择GridView
,那么您应该可以使用ArrayAdapter
,因为它已经支持轻松创建TextView
。
如果您只想要一个包装好的布局,如果下一个孩子不适合当前行,那么您将不得不编写一个自定义布局类来执行此操作。
答案 1 :(得分:0)
我想你可以尝试这样的事情:
- 以TableLayout
的根为Activity
,FILL_PARENT
作为宽度和高度。
- 然后获取其宽度并将其存储在变量(mWidth)中
- 创建TableRow
,添加第一个TextView
并将其宽度存储在变量(mTotalWidth)中,然后将TextView
放入行中。
- 当您想要添加新的Textview
时,可以创建它,获取其宽度并在将其添加到mTotalWidth时计算总和。
现在
if
mTotalWidth< mWidth,您将TextView
添加到当前行并增加mTotalWidth
else
您创建了一个新的TableRow
,将Textview
放入其中,并将mTotalWidth的值更改为此TextView
的宽度。
然后你可以为你的所有观点重复这个。这可能看起来有点乱,但我认为它可行。