TableRow 作为 LinearLayout 的奇怪行为

Posted

技术标签:

【中文标题】TableRow 作为 LinearLayout 的奇怪行为【英文标题】:Strange behaviour of TableRow as a LinearLayout 【发布时间】:2010-12-31 07:04:50 【问题描述】:

我注意到 TableRow 有一个奇怪的地方。

        <TableLayout
        android:layout_
        android:layout_
        android:stretchColumns="0">

        <TableRow
            android:background="#9932cc"
            android:minHeight="40px"
            android:orientation="horizontal">

            <LinearLayout
                android:paddingLeft="10px"
                android:paddingRight="10px"
                android:gravity="center_vertical"

                android:layout_gravity="center_vertical"
                android:layout_
                android:layout_

                android:orientation="horizontal">

                <ImageView
                    android:background="@drawable/circle_checkmark"
                    android:layout_
                    android:layout_
                    android:layout_gravity="center_vertical" />

                <TextView
                    android:id="@+id/text1"
                    android:background="#ffffff"
                    android:textColor="#161616"
                    android:text="11111 11111 11111 11111 11111 11111 11111 11111 11111 "

                    android:layout_gravity="center_vertical"
                    android:layout_
                    android:layout_ />
            </LinearLayout>
        </TableRow>

    </TableLayout>

此代码无法正常工作,因为 TextView text1 不会将其换行,只是延伸到屏幕之外。我已经设法通过将此 LinearLayout 嵌入到 RelativeLayout 中使其工作,但它似乎是最不优雅的解决方案,而且我不明白上面的代码有什么问题......

【问题讨论】:

【参考方案1】:

抱歉忽略了。似乎是 ADT 或 Eclipse 错误。现在一切正常

        <TableRow
            android:background="#9932cc"
            android:minHeight="40px"
            android:orientation="horizontal"
            android:layout_
            android:layout_
            android:paddingLeft="3dip"
            android:paddingRight="3dip">

            <ImageView
                android:layout_
                android:layout_
                android:background="@drawable/circle_checkmark" />

            <TextView
                android:id="@+id/text1"
                android:background="#ffffff"
                android:textColor="#161616"
                android:text="Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello "

                android:layout_
                android:layout_ />

        </TableRow>

【讨论】:

【参考方案2】:

您还可以将包含文本的列标记为“可收缩”(参见 javadoc)。

【讨论】:

以上是关于TableRow 作为 LinearLayout 的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章

android中Tablelayout一行只显示一个控件且沾满整行怎么办

布局与控件-TableLayout和VideoView

Android 表格布局

布局管理器

布局管理器

布局管理器