2012-01-05 127 views
4

我目前正在开发一个应用程序,只是在冰淇淋三明治上运行一些测试,并注意到在textview中使用属性android:ellipsize =“end”时出现了一些奇怪的行为。它在点之后添加一个[字符。这个bug使我疯狂,只出现在冰淇淋三明治中。我看到previous thread about this,但没有任何修复帮助。任何想法,但报告为Android 4.0,也许?我的代码下面incase我错了冰淇淋三明治莫名其妙。椭圆冰淇淋三明治添加[

<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); 
+0

我已经用一些随机文本在LinearLayout中测试过它,但文本被截断为预期。 3点之后没有其他字符。你可以向我们展示你在TextView中放置的文本,以及如何将它放在那里? – Flo 2012-01-05 09:35:22

+0

另外你的LinearLayout在TextView周围工作得很好。 – Flo 2012-01-05 09:38:43

+0

这对我造成了“纽约太阳镜” 我通过代码动态设置文本,以便可能与它有关,如果您在文本字段上运行setText,它仍然可以吗? – MikeIsrael 2012-01-05 09:39:27

回答

6

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

+0

我有同样的问题,但我不知道我们如何警告.ttf或.otf文件,并包括0宽度空格字符。请帮帮我 – naresh 2013-07-12 09:45:22

1

设置文本我1.6一个TextView使用自定义字体,竟然出现了类似的问题。就我而言,我所代替标准的TextView与此链接的版本:

android ellipsize multiline textview

和多余的字符就走开了。

0

如果我是你,我会尝试的minlines和TextView的maxlines的声明中,这样一来:

android:minLines="1" 
android:maxLines="1" 

,而不是机器人:单线= “真”。我有一个类似的问题,只出现在使用android 4时。我解决了这种方式,但我没有通过setTypeface更改字体。

相关问题