椭圆冰淇淋三明治添加[

Mik*_*ael 4 android textview android-4.0-ice-cream-sandwich

我正在开发一个应用程序,只是在冰淇淋三明治上运行了一些测试,并注意到在textview中使用属性android:ellipsize ="end"时的一些奇怪的行为.它正在添加一个[点后面的字符.这个错误让我疯狂,只出现在冰淇淋三明治中.我看到了一个关于此前一个帖子,但没有一个修复有帮助.任何想法,但可能是针对Android 4.0的报告?我的代码在下面,因为我错误地把冰淇淋三明治弄错了.

 <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>
Run Code Online (Sandbox Code Playgroud)

我通过代码动态设置文本

TextView title = (TextView) act.findViewById(R.id.mainTitle);
title.setTypeface(Utils.font);
title.setText(detailTitle);
Run Code Online (Sandbox Code Playgroud)

ice*_*man 6

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