如何避免这种重叠?

时间:2014-03-11 14:43:04

标签: android

我在一个定义为android:theme="@android:style/Theme.Dialog"

的Activity中有一个ListView

这是ListView每行的XML。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
    android:paddingLeft="10dp"
    android:id="@+id/appname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:text="Large Text"
    android:textColor="#0000EE"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<ImageView
    android:paddingLeft="10dp"
    android:id="@+id/edit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/contentedit" />

<ImageView
    android:layout_marginLeft="10dp"
    android:id="@+id/delete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/edit"
    android:src="@drawable/contentdiscard" />

</RelativeLayout>

当文字稍长时,我会发现文字与图标的重叠重叠。

enter image description here

请问我该如何解决?

3 个答案:

答案 0 :(得分:0)

使用此功能。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/appname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:paddingLeft="10dp"
    android:singleLine="true"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#0000EE" />

<ImageView
    android:id="@+id/edit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/contentedit" />

<ImageView
    android:id="@+id/delete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginRight="5dp"
    android:layout_toLeftOf="@+id/edit"
    android:src="@drawable/contentdiscard" />

</RelativeLayout>

答案 1 :(得分:0)

使用带有权重的LinearLayout和属性ellipsize&amp; lines如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/appname"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ellipsize="end"
        android:lines="1"
        android:paddingLeft="10dp"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#0000EE" />

    <ImageView
        android:id="@+id/edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:src="@drawable/contentedit" />

    <ImageView
        android:id="@+id/delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:src="@drawable/contentdiscard" />

</LinearLayout>

答案 2 :(得分:0)

较小的文字可行。小图标也是如此。您可能还允许文本换行到多行并增加每个项目的高度。您可能尝试的另一件事是在文本视图上设置ellipsize - 任何大的东西都会被裁剪,并在末尾放置一个“...”。

您还可以删除删除/编辑图标并使用上下文菜单 - 选择一个网站,然后显示图标

只有很多方法可以在很小的屏幕上显示大量内容。