2

我有一个多行 TextView,在它旁边我想显示一个复选框。问题是如果文本超过 1 行,则不会显示复选框。

到目前为止,我有(没有 id):

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:gravity="left"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:focusable="true"
        android:gravity="left"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="3dp"
            android:paddingTop="5dp"
            android:singleLine="false"
            android:text="Lorem ipsum dolor sit amet, consectetur adipiscing"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:text=""
            android:clickable="false" />

    </LinearLayout>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="3dp"
        android:paddingLeft="3dp"
        android:singleLine="false"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>

这是布局的呈现方式(注意缺少的复选框):

缺少复选框

如果我缩短文本,它会正确呈现:

复选框在那里

是否可以在多行 TextView 的右侧添加 CheckBox?

编辑:对不起大家,我问了这个问题后很快就解决了这个问题(通过添加 layout_weight=1),但发布在错误的线程中。我已经接受了建议的答案。

4

5 回答 5

4

添加这个android:layout_weight="1"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:gravity="left"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:focusable="true"
        android:gravity="left"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="3dp"
            android:paddingTop="5dp"
            android:singleLine="false"
            android:text="Lorem ipsum dolor sit amet, consectetur adipiscing"
            android:textAppearance="?android:attr/textAppearanceLarge" 
            android:layout_weight="1" />

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:text=""
            android:clickable="false"
            />

    </LinearLayout>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="3dp"
        android:paddingLeft="3dp"
        android:singleLine="false"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
于 2012-09-10T08:14:12.937 回答
2

尝试在线性布局中使用相对布局,而不是在线性布局中使用线性布局,并使用相对布局参数

于 2012-09-10T08:09:04.540 回答
1

尝试给CheckBox一个Weight大于的值TextView(将其设置width0dip并给它更高的值Weight

于 2012-09-10T08:11:17.550 回答
1

您可以通过使用权重来做到这一点..尝试以下代码

请尝试根据您的要求更改重量

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:gravity="left"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingLeft="3dp"
        android:paddingTop="5dp"
        android:singleLine="false"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:focusable="false"
        android:text=""
        android:clickable="false" />

</LinearLayout>

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="3dp"
    android:paddingLeft="3dp"
    android:singleLine="false"
    android:text="Lorem ipsum dolor sit amet, consectetur adipiscing"
    android:textAppearance="?android:attr/textAppearanceSmall" />

于 2012-09-10T08:12:33.173 回答
1

尝试在 LinearLayout 中使用以下内容

<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="textfield 1-1"></TextView>
<CheckBox android:id="@+id/CheckBox01" android:layout_width="wrap_content" android:layout_height="wrap_content"></CheckBox>

复制自http://huuah.com/using-tablelayout-on-android/

于 2012-09-10T08:34:23.403 回答