1

我正在尝试将省略号添加到列表视图中的文本视图中,但它不起作用。

请在下面查看我的 xml 定义。

在这种情况下,它不会出现在模拟器或设备上:

?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:focusable="true">
    <ImageView android:id="@+id/imageview" android:layout_width="30dip"
        android:layout_height="30dip" android:layout_centerVertical="true"
        android:layout_alignParentLeft="true" android:src="@drawable/about"
        android:layout_margin="8dip"/>
    <TextView android:id="@+id/title" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_toRightOf="@+id/imageview"
        android:textStyle="bold" android:textColor="#000000"
            android:textSize="15sp" android:lines="1" 
        android:ellipsize="marquee" android:inputType="text"
        android:marqueeRepeatLimit="3" 
        android:layout_marginRight="15dip"
        android:layout_centerVertical="true"
                android:layout_toLeftOf="@+id/delete">
    </TextView>
    <ImageButton android:id="@+id/delete" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_centerVertical="true"
        android:layout_alignParentRight="true" android:layout_marginRight="0dip"
        android:layout_margin="5dip" android:src="@drawable/delete_icon"
        />


</RelativeLayout>

在这种情况下,它出现在模拟器上,而不是设备上:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <ImageView android:id="@+id/imageview"
    android:layout_width="wrap_content"
            android:layout_height="wrap_content"
                         android:layout_centerVertical="true" android:layout_alignParentLeft="true"/>
        <TextView android:id="@+id/title" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_toRightOf="@+id/imageview"
             android:textStyle="bold" android:textColor="#000000"
             android:layout_marginLeft="10dip" android:layout_marginRight="10dip"
            android:textSize="15sp"  android:cacheColorHint="#00000000"> 
        </TextView>
        <TextView android:id="@+id/shortdesc" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_below="@+id/title"
            android:layout_toRightOf="@+id/imageview" 
             android:textSize="15sp"
            android:lines="2" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever"
             android:layout_marginLeft="10dip" android:layout_marginRight="20dip"
            android:textColor="#413839"  android:cacheColorHint="#00000000">

        </TextView>


</RelativeLayout>

请帮助,感谢您的投入和时间


解决方案对于第一个,请参阅下面的我的commnets

对于第二个,我不得不用 end 替换 marquee

<TextView android:id="@+id/shortdesc" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_below="@+id/title"
        android:layout_toRightOf="@+id/imageview" 
         android:textSize="15sp" 
        android:maxLines="2"  android:ellipsize="end" 
         android:layout_marginLeft="10dip" android:layout_marginRight="30dip"
        android:textColor="#413839"  android:cacheColorHint="#00000000"
        android:text="asdfghjmsbvhsfadk vcdfkhreouhjkjfdgdslkfdn bfoiunbf m,cvbkjnfgb kj      nbcdjfkdleoig;dkf nmvnb safdsfrtgdfgdfhg">
    </TextView>
4

2 回答 2

2

如果它在列表视图中不起作用,请尝试首先将椭圆形文本视图显示为独立视图列表视图,有时可能会使事情复杂化。并尝试使用属性“singleLine=false”

看看这个问题:很多与椭圆大小有关的信息。

更新:我的文本视图在我的应用程序中完美运行

<TextView 
    android:id="@+id/product_desc" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/img_disclosure"
        android:layout_marginTop="5dip"
        android:layout_marginRight="5dip"
        android:ellipsize="marquee" 
        android:text="this is the sample text to test the ellipsize effect of text view"
        android:textColor="@color/results_sep_color" 
        android:textSize="15sp"
        android:textStyle="bold"
        android:singleLine="false"
        android:maxLines="2"/>

第二次更新:

<TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:lines="1"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="Don't have an account sdsadfsf asdfsdfdsdd abracadabra"

      />
于 2012-01-05T03:20:35.267 回答
0

不需要像android:scrollHorizontallyand那样设置属性android:lines,只要设置android:singleLine="true"andandroid:ellipsize="marquee"就可以了。

注意:选取 ListView 的行时,选取框动画开始。

public void setSingleLine(boolean singleLine) {
    // Could be used, but may break backward compatibility.
    // if (mSingleLine == singleLine) return;
    setInputTypeSingleLine(singleLine);
    applySingleLine(singleLine, true, true);
}

private void applySingleLine(boolean singleLine, boolean applyTransformation,
        boolean changeMaxLines) {
    mSingleLine = singleLine;
    if (singleLine) {
        setLines(1);
        setHorizontallyScrolling(true);
        if (applyTransformation) {
            setTransformationMethod(SingleLineTransformationMethod.getInstance());
        }   
    } else {
        if (changeMaxLines) {
            setMaxLines(Integer.MAX_VALUE);
        }   
        setHorizontallyScrolling(false);
        if (applyTransformation) {
            setTransformationMethod(null);
        }   
    }   
}

android.widget.TextView代码片段(从 1.5_r4 开始)。

于 2012-05-28T14:52:06.187 回答