使用ImageView的Android TextView宽度

时间:2013-12-08 16:57:41

标签: android android-layout textview

我有一个带有TextView和ImageView的ListView单元格。我希望ImageView保持在右侧,TextView宽度为“单元格宽度减去ImageView占用的所有空间”。现在我正在使用它:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="@dimen/defaultCellHeight">

        <TextView
            android:id="@+id/randomSettingShow"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/defaultCellHeight"
            android:paddingLeft="30dp"
            android:textSize="@dimen/defaultTextSize"
            android:focusable="false"
            android:textStyle="normal"
            android:gravity="center_vertical|left"
            android:layout_alignParentLeft="true" />

         <ImageView
            android:id="@+id/randomSettingShowCheck"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/defaultCellHeight"
            android:gravity="center"
            android:layout_marginRight="15dp"
            android:layout_alignParentRight="true"
            android:contentDescription="@string/checkmark" />
</RelativeLayout>

但问题是如果TextView中的文本足够长,文本会在ImageView下显示,显然,这是不正确的。我希望TextView的最大宽度设置为ImageView的左边框。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以尝试将TextView与复合drawable set - see documentation

一起使用

答案 1 :(得分:0)

您可以尝试这样的事情:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_toLeftOf="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some Text"
        android:id="@+id/textView"
        android:layout_alignParentLeft="true" />

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:id="@id/imageView"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true" />
</RelativeLayout>
像朝日说的那样,复合抽屉可能更适合你的情况。看一下这个答案here