代码之家  ›  专栏  ›  技术社区  ›  Keenora Fluffball

向TableLayout“stackable”添加文本视图

  •  1
  • Keenora Fluffball  · 技术社区  · 14 年前

    这些视图有一个可变的宽度,这个宽度是根据它们的文本长度和一些像素计算出来的(WRAP\u内容的宽度是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]
    ------------------------------------------
    

    实际上我不需要一个表格布局。你要什么我都可以换。当然,如果那些文本视图可以将内容作为宽度进行包装就更好了。

    编辑: 顺便说一句,orientation=“horizontal”的LinearLayout会在第一个corret处添加文本视图,但在最后它不会换行到下一行,它只会将它们添加到右侧并将其拆分,如:

    ------------------------------------------
    [TextView 1] [TextView 2] [TextView 3] [Te
                                           [xt
                                           Vie
                                           w 4
                                           ]
    ------------------------------------------
    
    2 回复  |  直到 14 年前
        1
  •  0
  •   Sephy    14 年前

    我想你可以试试这样的方法:
    -放一个 TableLayout 作为你的根 Activity FILL_PARENT 宽度和高度。
    -然后获取其宽度并将其存储在变量(mWidth)中。
    TableRow TextView 并将其宽度存储在变量(mTotalWidth)中,然后将 排成一排。
    -当你想添加一个新的 Textview
    现在
    if 总宽度<mWidth,你加上你的 文本框 放入当前行并增加mTotalWidth
    else 表格行 ,把你的 文本视图 并将mTotalWidth的值更改为 .
    然后可以对所有视图重复此操作。这可能看起来有点混乱,但我认为它可以工作。

        2
  •  0
  •   Rich Schuler    14 年前

    你可能想用 GridView 为了你想做的事。我不相信有任何布局类支持您想要做的事情。

    网格视图 然后您应该能够使用 ArrayAdapter TextView 这很容易。

    如果您只是想要一个布局,如果下一个子元素不适合当前行,那么您就必须编写一个自定义布局类来完成它。