【问题标题】:ellipse ice cream sandwich adds [椭圆冰淇淋三明治添加[
【发布时间】:2012-01-05 09:20:58
【问题描述】:

我目前正在开发一个应用程序,刚刚对冰淇淋三明治进行了一些测试,发现在文本视图中使用属性 android:ellipsize="end" 时出现了一些奇怪的行为。它在点后添加一个 [ 字符。这个虫子让我发疯,只出现在冰淇淋三明治中。我看到了previous thread about this,但那里的修复都没有帮助。任何想法,但可能报告 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>

我通过

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

【问题讨论】:

  • 我已经在带有一些随机文本的 LinearLayout 中对其进行了测试,但文本已按预期截断。 3个点之后没有其他字符。您能告诉我们您在 TextView 中输入的文本以及您是如何将其放入其中的吗?
  • 在 TextView 周围的 LinearLayout 也可以正常工作。
  • 这对我来说是“纽约太阳镜”我正在通过代码动态设置文本,所以这可能与它有关,如果你在文本字段上运行 setText 它仍然可以吗?
  • 是的,应该没问题。显示设置文本的代码。
  • 好的我更新了问题并发现了原始问题,不同字体的 setTypeface 似乎导致 [ 出现。我改变了字体,很好。但我不明白为什么这只出现在冰淇淋三明治上

标签: android textview android-4.0-ice-cream-sandwich


【解决方案1】:

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

【讨论】:

  • 我有同样的问题,但我不知道我们如何提醒 .ttf 或 .otf 文件并包含 0 宽度的空格字符。请帮帮我
【解决方案2】:

我在 TextView 中使用自定义字体时遇到了类似的问题,实际上是在 1.6 中。就我而言,我用此链接中的版本替换了标准 TextView:

android ellipsize multiline textview

多余的字符消失了。

【讨论】:

    【解决方案3】:

    如果我是你,我会在 TextView 声明中尝试 minLines 和 maxlines,这样:

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

    而不是 android:singleLine="true"。我有一个类似的问题,仅在使用android 4时出现。我通过这种方式解决了,但我没有通过setTypeface更改字体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 2014-03-26
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多