我目前正在开发一个应用程序,只是对 Ice Cream Sandwich 进行了一些测试,并注意到在 textview 中使用属性 android:ellipsize="end"时出现了一些奇怪的行为。它在点之后添加一个 [ 字符。这个错误让我发疯,只出现在 Ice Cream Sandwich 中。我看到了 previous thread about this ,但那里的修复都没有帮助。任何想法,但报告 android 4.0,也许?我的代码在下面,以防我以某种方式错误地对待 Ice Cream Sandwich 。

 <LinearLayout
     android:id="@+id/mainTitleLayout"
     android:layout_width="wrap_content"
     android:layout_height="fill_parent"
     android:layout_weight="0.36"
     android:orientation="horizontal"
     android:weightSum="1" >
<TextView
    android:id="@+id/mainTitle"
    android:layout_width="135dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="62dp"
    android:layout_marginTop="4dp"
    android:layout_weight="0.53"
    android:editable="false"
    android:ellipsize="end"
    android:gravity="center_vertical|center_horizontal"
    android:singleLine="true"
    android:textColor="#fff"
    android:textSize="26sp"
    android:textStyle="bold"
    android:width="125dp" >
</TextView>
</LinearLayout>

我通过代码在代码中动态设置文本
TextView title = (TextView) act.findViewById(R.id.mainTitle);
title.setTypeface(Utils.font);
title.setText(detailTitle);

最佳答案

我想我知道你的问题。我通过 setTypeface 设置的自定义字体发现了这个问题。答案可以在 Layout 的源代码中找到,它处理将 TextViews 绘制到屏幕上。看看 ling 1668 的方法 'ellipsize'。除了省略号字符外,它似乎还使用了一个字符,即 0 宽度空格 (U+FEFF)。我的猜测是您的自定义字体不包含 0 宽度空格字符,这会导致框呈现。我也有同样的问题!修复将需要更改 .ttf 或 .otf 文件以包含 0 宽度空格字符。希望这可以帮助!

关于android - 椭圆 Ice Cream Sandwich 加[,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8740113/

10-10 09:46