1

好的,我的问题是,我有 n-TextViews,它们将以编程方式添加到 TableLayout 中。完全没关系,我如何设置这些 TextView 或 TableLayout 的样式,每次我添加一些东西时,它都会在其他 TextView 之后的底部添加 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。我仍然可以随心所欲地改变它。当然,如果这些 TextView 可以将 WRAP_CONTENT 作为宽度,那就更好了。

编辑:顺便说一句。一个带有orientation="horizo​​ntal"的LinearLayout首先添加了TextViews,但最后它不会换行到下一行,它只是将它们添加到右侧并且它将被拆分,例如:

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

2 回答 2

0

您可能希望将 aGridView用于您正在尝试做的事情。我不相信有任何 Layout 类支持您想要做的事情。

如果你和你一起去,GridView那么你应该能够使用,ArrayAdapter因为它已经支持TextView轻松创建 s。

如果您只想要一个在下一个子项不适合当前行的情况下环绕的布局,那么您将不得不编写一个自定义布局类来执行此操作。

于 2010-07-28T14:20:40.640 回答
0

我想你可以尝试这样的事情:
- 把 aTableLayout作为你的根,Activity宽度FILL_PARENT和高度。
- 然后获取它的宽度并将其存储在一个变量(mWidth)中。
- 你创建一个TableRow,添加一个第一个TextView并将其宽度存储在一个变量(mTotalWidth)中,然后你把它TextView放在行中。
- 当你想添加一个新的Textview时,你创建它,获取它的宽度并在将它添加到 mTotalWidth 时计算总和。
现在
ifmTotalWidth < mWidth ,您将您添加TextView到当前行并增加 mTotalWidth
else您创建一个新的TableRow,放入Textview其中,并将 mTotalWidth 的值更改为 this 的宽度TextView
然后,您可以对所有视图重复此操作。这可能看起来有点混乱,但我认为它可以工作。

于 2010-07-28T14:41:10.387 回答