Android:如何将 LinearLayout 的内容垂直包装在 TableRow 中?

Posted

技术标签:

【中文标题】Android:如何将 LinearLayout 的内容垂直包装在 TableRow 中?【英文标题】:Android: How to wrap content of a LinearLayout inside a TableRow vertically? 【发布时间】:2013-05-14 20:48:05 【问题描述】:

我正在尝试以编程方式将标签列表(基本上只是带有背景和边框的 TextViews)添加到 TableRow。

我已将 LinearLayout 添加到 TableRow 以用作容器。不幸的是,我似乎无法使布局垂直换行 - 即,如果要添加很多标签,列表就会水平离开屏幕。

如何将 TextView 项目列表添加到 TableRow 内的 LinearLayout?这是我的布局:

    ...
    <TableRow
        android:layout_
        android:layout_ >

        <TextView
            android:layout_
            android:layout_
            style="@style/LabelTheme"
            android:text="@string/interests" />

        <LinearLayout
            android:id="@+id/eventInterestContainer"
            android:layout_
            android:layout_
            android:orientation="horizontal" />

    </TableRow>
    ...

注意:我添加了一个 LinearLayout,因为否则每个标签的宽度都是单元格的宽度,而我希望宽度为 wrap_content。也许这不是必需的?

【问题讨论】:

尝试将您的线性布局方向更改为垂直 我希望它在一行中水平放置尽可能多的标签,但在必要时换行到下一行。如果我改变方向,它们都会垂直放置。 【参考方案1】:

您是否尝试过将 LinearLayout 的方向值更改为“垂直”。

如果您想“将尽可能多的标签水平放置在一行上,但在必要时换行到下一行”,您可以拥有一系列“水平”线性布局并将您的内容添加到下一个/连续一旦后续内容的内容大于您的屏幕宽度,则线性布局

【讨论】:

这似乎需要做很多工作。有没有办法为我制作android? developer.android.com/guide/topics/ui/layout/gridview.html 可能比线性布局更适合您的问题?如果没有,那么据我所知,在不实现多个线性布局的情况下,没有一种简单的方法可以让 Android 为您执行此操作

以上是关于Android:如何将 LinearLayout 的内容垂直包装在 TableRow 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用android中的拖放框架从一个LinearLayout切换到另一个LinearLayout

Android Studio 如何在 LinearLayout 元素中实现锚链接?

使用LinearLayout将按钮放在屏幕底部?

如何在 LinearLayout 中删除 ImageView

Android:LinearLayout addView 动画

Android:如何旋转LinearLayout