TextView maxLength ellisize不起作用

时间:2018-01-17 11:54:33

标签: android text textview ellipsize

我有一个TextView,应该是最多15个字符,最后它应该有三个点。使用我的XML,它可以剪切15个字符,但最后不会添加三个点extractSDTsFromBodyElements(List<IBodyElement> elements) { List<AbstractXWPFSDT> sdts = new ArrayList<AbstractXWPFSDT>(); for (IBodyElement e : elements) { if (e instanceof XWPFSDT) { XWPFSDT sdt = (XWPFSDT) e; sdts.add(sdt); } else if (e instanceof XWPFParagraph) { XWPFParagraph p = (XWPFParagraph) e; for (IRunElement e2 : p.getIRuns()) { if (e2 instanceof XWPFSDT) { XWPFSDT sdt = (XWPFSDT) e2; sdts.add(sdt); } } } } return sdts; }

  

重要提示:当我使用行数限制文本时,我知道它有效 - ...。但是我需要用最大字符数限制它,   如上所述。

android:maxLines="2"

结果:

enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个解决方案:

#rack-button {
    position: absolute;
    background: url('simple_rack.svg') no-repeat top left;
    background-size: contain;
    display: inline-block;
    width:  35px;
    height: 35px;
    left: 10%;
    border-radius: 5px;
    color:#fff;
}

希望这有助于你...如果你需要任何帮助,你可以问

答案 1 :(得分:1)

我不确定你是如何或者如果你能用XML做你想做的事。

至少我不知道怎么做 - 但我有另一种解决方案。

public void ellipsizeText(TextView tv){
    int maxLength = 13;
    if(tv.getText().length() > maxLength){
        String currentText = tv.getText().toString();
        String ellipsizedText =  currentText.substring(0, maxLength - 3) + "...";
        tv.setText(ellipsizedText);
    }
}

所以我把它作为一种将textview作为参数的方法。这非常简单,你将maxLength更改为字符串所需的最大长度。在这种情况下,它设置为13,因为它用“...”替换最后3个字符,然后产生仍然是13个字符长的字符串,但前10个是实际文本,最后3个是“ ......“。

在您的主项目中,您可以将maxLength更改为150(如果您想从字符串中获得150个可见字符,则更改为153)

希望你能使用它,如果你有任何问题,请告诉我。