android在末尾textview _EDIT附加'...'

时间:2010-10-26 06:44:20

标签: android listview append

我有一个lsit视图,我需要添加一些文本。 在适配器中,我需要追加...最后我使用以下内容 当我给予

android:ellipsize="end"

仅显示2行 例如:
asdnfsdfdsf asdfsdfasdf
sdfsd sdfsdf sdfsd ad ...

当我给出

android:ellipsize="start"

如下:
asdnfsdfdsf asdfsdfasdfd
... sdfsd sdfsdf sdfsd ad

我使用的完整代码:

<TextView  android:layout_width="wrap_content" android:background="#016A7D"

   android:layout_height="80dp" android:textColor="#000000"

    android:maxLines="4"          

    android:id="@+id/list_report_desciption" 

    android:ellipsize="end"

/&GT; 我得到的输出是:

一个更聪明的星球到底是什么?   看起来像? IT如何变化?甲...

实际上它包含超过6行 有什么东西我需要设置,所以我需要得到3行
谢谢

4 个答案:

答案 0 :(得分:2)

文本椭圆化看起来很麻烦,因为这个报告: http://code.google.com/p/android/issues/detail?id=10554

通过将android:singleLine属性设置为true,解决方法允许椭圆化一行文本。但是这个属性已被弃用。

答案 1 :(得分:0)

对我来说没有任何作用:-(
我刚刚确定了长度。切断该长度的字符串,然后追加'......' 现在它为我工作。

答案 2 :(得分:0)

我自己正在寻找一个简单的解决方案,我最终得到了类似的东西:

private String getTextWithMoreIndicator(TextView textView, String text) {

    long maxVisibleChars = textView.getPaint().breakText(text, true, textView.getMeasuredWidth(), null);

    if(maxVisibleChars < text.length()) {
        text = text.substring(0, (int)maxVisibleChars -3) + "..."; 
    }

    return text;
}

答案 3 :(得分:0)

您接受的解决方案无法在所有设备上正确缩放。

原因:“a”的宽度小于“A”,因此,如果您根据某个大小(例如15个字母)截断字符串并通过代码添加“...” 。您可能会看到不期望的结果。

现在来解决方案: -

<强>解决方案:

解决方案#1: 将以下3个属性添加到TextView中,您将获得所需的结果:)

<TextView
    android:ellipsize="end"
    android:lines="1"
    android:scrollHorizontally="true" />

解决方案#2: 另一种解决方法可能是,您可以决定选取文本(将文本从右向左移动的花哨动画)。为此,您需要在TextView xml中使用以下属性: -

<TextView
    android:id="@+id/my_text_view"
    android:ellipsize="marquee"
    android:lines="1"
    android:scrollHorizontally="true"
    android:marqueeRepeatLimit="marquee_forever" />

然后在您的代码中,您需要通过其ID获取TextView并输入以下行: -

TextView myTextView = (TextView) findViewById(R.id.my_text_view);
myTextView.setSelected(true);

####编辑: - ####

我刚想通知我的解决方案适用于大于2.3.x的Android版本,我们需要在T​​extView xml中添加以下行: -

    android:singleLine="true"

虽然它是一个已弃用的属性,但你必须添加它,否则选框或“...”将不起作用。

希望这回答问题:)