我在CardView中有一个TextView和一个ImageView 我对TextView有一个问题 当TextView文本长度超过CardView长度时,它会针对ImageView显示,我不希望这样。
喜欢这张图片:
我想要它,以便当文本触及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>
这是我想要的屏幕截图:
答案 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
属性
答案 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>
你的输出看起来像你想要的那样。