代码之家  ›  专栏  ›  技术社区  ›  OneWorld

安卓:比android:椭圆化=“end”向截断的长字符串添加“…”?

  •  43
  • OneWorld  · 技术社区  · 15 年前

    This property

    “短词和长词”

    . 但我想要smth。喜欢

    “又矮又长……”

    现在我在Java代码中截断字符串。但是,这是基于字符数,而不是链接的实际长度。所以,结果不是很好。

    String title;
        if(model.getOrganization().length() > 19) {
          title = model.getText().substring(0, 15).trim() + "…";
        } else {
          title = model.getText();
        }
        ((TextView) findViewById(R.id.TextViewTitle)).setText(title);
    

    更新

    刚才注意到,这个属性实际上在一些情况下添加了“…”。但不是所有的人都这样:

    "12345678901234..."

    变成“1234567890”而不是 "1234567890 123..."

    更新2

    现在它真的变得很时髦!我刚刚设置了singleLine=true并删除了maxLine(这个bug出现时有没有设置ellipsize属性)。。。

    alt text

    这是摩托罗拉里程碑android 2.1更新1的截图。同样的情况也发生在HTC Desire和android版本上

    现在我用android:椭圆化=“天棚”。这似乎是唯一正常工作的环境。它也只有在集中注意力的时候才会移动。我在许多其他应用程序中也看到了它。我想这是常见的做法。

    4 回复  |  直到 9 年前
        1
  •  67
  •   bakkay    14 年前

    如果是单行线,试试这个:

    android:ellipsize="end"
    android:maxLines="1"
    android:scrollHorizontally="true"
    android:singleLine="true"
    

    它对我有用。

        2
  •  26
  •   Maragues    15 年前

    android:singleLine="true"
    

    另外,我使用了RelativeLayout,因此我通过将左边距设置为TextView右侧的按钮来限制TextView可以占用的空间,这样文本就不能进一步展开,并且被迫截断其内容。

        3
  •  1
  •   OneWorld    13 年前

    现在,有了新版本的Android,这项功能很可能已经修复,并将按预期工作。(我猜)

        4
  •  1
  •   Josh    11 年前

    private Ellipsizer class 由操作系统使用并为你的应用程序修改它?

    编辑:这里有一个工作链接- http://androidxref.com/5.1.0_r1/xref/frameworks/base/core/java/android/text/Layout.java#1830