为什么单行中的TextView使用“end”显示框?

我在Android中使用TextView,我想在TextView中以“。”结尾显示1行,但最后给出[]types框。 我不知道为什么? 我只是想把这个盒子拿出去,只显示以“……”结尾的文字

TextView末尾显示框

更新list_row.xml的代码

            

这是“next_arrow”的图像 在此处输入图像描述

这是我在适配器中使用getView()的代码。

  String discription = listData.getDescription(); if (discription != null && discription.length() > 0) { if (textViewDis != null) { textViewDis.setTypeface(titleFont); Log.e("data", ""+discription); discription.replaceAll("\r\n", ""); textViewDis.setText(discription); } } 

这是要显示的实际描述字符串。

Andrew和Stephanie Tidwell坦诚地分享了他们在这项业务中的成功故事。 这个故事将帮助每个人都倾听,即使在第二代企业中也没有人能够完美。 这是一个流音频文件。

还有一些问题吗? 我可以更多地更新问题。

Solutions Collecting From Web of "为什么单行中的TextView使用“end”显示框?"

从我的一本书中引用自己:

Android的TextView类具有内置的“椭圆化”文本function,截断它并在文本长于可用空间时添加省略号。 例如,您可以通过android:ellipsize属性使用它。 这非常有效,至少对于单行文本而言。 Android使用的省略号不是三个句点。 相反,它使用实际的省略号字符,其中三个点包含在单个字形中。 因此,您使用的任何字体也使用“椭圆化”function将需要省略号字形。

除此之外,Android会在屏幕上填充字符串,这样在“椭圆化”之前和之后的长度(以字符为单位)是相同的。 为了使这项工作,Android用省略号替换一个字符,并用Unicode字符’ZERO WIDTH NO-BREAK SPACE’(U + FEFF)替换所有其他删除的字符。 这意味着省略号后面的“额外”字符不占用屏幕上的任何可见空间,但它们可以是字符串的一部分。

但是,这意味着您用于与android:ellipsize一起使用的TextView小部件的任何自定义字体也必须支持这种特殊的Unicode字符。 并非所有字体都可以,如果您的字体缺少此字符,您将在缩短字符串的屏幕表示中获得工件(例如,流氓X出现在行尾)。

当尝试使用自定义“MetaPro-Medium.otf”作为TextView字体时,我遇到了同样的问题android:singleLine="true" 。 字符串末尾的方框真的很烦人。

我发现没有办法在Android中如何解决这个问题,但同时发现以下解决方法。

  1. 我安装了“FontLab Studio v5.04”
  2. 打开我的字体
  3. 选中的一个我不打算使用的符号
  4. 菜单 – >字形 – >重命名字形
  5. 将名称和unicode索引从其原始值更改为“FEFF”(感谢CommonsWare)
  6. 双击所选符号,然后删除此符号的所有行。
  7. 菜单 – >文件 – >生成字体 – >另存为otftypes

结果我得到了更新的字体和问题消失了。

当我尝试显示来自webservice url的内容时,我面临同样的问题(显示框([]))一些特殊符号,我不使用android:ellipsize。 然后我替换代码

 textview.settext(content); 

 textview.settext(Html.fromHtml(content)); 

工作正常。

实际上我遇到了这个问题而不是更改字体或使用setText我只是将scrollHorizo​​ntally添加为false并修复了额外的框字符

 android:singleLine="true" android:scrollHorizontally="false" android:ellipsize="end" 

Arslan,你的布局在我的情况下工作得很好,我测试了同样的:

   

…并根据需要获得准确的输出“一行以…结尾”,并且应删除框。 所以我认为你设置的任何字符或文字可能有问题。

在我的项目中遇到了类似的问题,我在文本视图中使用字体types。 很少有字体types有这些问题使…最后显示为[]。 如果你尝试更改字体,问题就会解决。