在同一行的textView旁边添加ImageView

时间:2016-05-29 07:29:11

标签: android xml android-xml

我在CardView中有一个TextView和一个ImageView 我对TextView有一个问题 当TextView文本长度超过CardView长度时,它会针对ImageView显示,我不希望这样。

喜欢这张图片:

enter image description here

我想要它,以便当文本触及ImageIiew时,它会显示...以指示文本延续。

  

row.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:layout_margin="4dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/txt_file_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"/>

        <ImageView
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:src="@drawable/ic_delete_forever_red_500_24dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"/>

    </RelativeLayout>
</android.support.v7.widget.CardView>

这是我想要的屏幕截图:

enter image description here

3 个答案:

答案 0 :(得分:2)

您可以利用复合drawable ,而不是将ImageView和TextView放在RelativeLayout中。 这意味着您可以在TextView中添加 的可绘制内容,而不是在其外部。

即:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:layout_margin="4dp">
        <TextView
            android:id="@+id/txt_file_title"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerInParent="true"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:drawableLeft="@drawable/ic_delete_forever_red_500_24dp"
        />
</android.support.v7.widget.CardView>

这也更快,因为您一次摆脱了ViewGroup和View(使用的越少,速度就越快)

或者,您还可以使用android:drawablePadding属性

在复合drawable和文本之间设置边距

答案 1 :(得分:2)

尝试以下代码。希望它有效

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:layout_margin="4dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/txt_file_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/imageView"
            android:layout_marginLeft="16dp"
            android:layout_centerVertical="true"/>

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="24dp"
            android:layout_height="24dp"
            android:src="@drawable/ic_delete_forever_red_500_24dp"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"/>


    </RelativeLayout>
</android.support.v7.widget.CardView>

答案 2 :(得分:1)

使用此代码。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:layout_margin="4dp"
    android:orientation="horizontal">


    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:src ="@drawable/ic_delete_forever_red_500_24dp"
                android:id="@+id/imageView"
                android:layout_centerVertical="true"/>

            <TextView
                android:id="@+id/txt_file_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="bjbjgbdgkgbndbndkbdkb..fg.bgbfgnbnfgb."
                android:layout_toEndOf="@+id/imageView"
                android:layout_toRightOf="@+id/imageView"
                android:layout_centerVertical="true"/>

        </RelativeLayout>
</android.support.v7.widget.CardView>

你的输出看起来像你想要的那样。

enter image description here