我在Android中使用TextView,我希望在TextView中以“。”结尾显示1行,但这会在最后给出[]类型框。我不知道为什么?我只是想把这个盒子拿出去,只显示以“......”结尾的文字
更新list_row.xml的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="85dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:cacheColorHint="#4C7B8D"
android:background="#4C7B8D">
<ImageView
android:id="@+id/videoListImage"
android:src="@drawable/audio_thumbnail60x60"
android:layout_height="75dp"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:scaleType="fitXY"
android:layout_width="75dp"
android:padding="4dp"
android:background="@color/light_gray" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/next_arrow"
android:orientation="vertical"
android:gravity="center_vertical"
android:paddingLeft = "5dp">
<TextView
android:id="@+id/row_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="@color/app_background_color"
android:textSize="18sp"
android:ellipsize="end"
android:maxLines="1" />
<TextView
android:id="@+id/row_dis"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="@color/color_black"
android:layout_marginRight="2dp"
android:textSize="15sp"
android:ellipsize="end"
android:maxLines="1" />
<TextView
android:text="$7.50"
android:id="@+id/audio_price_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:textColor="@color/color_white"
android:textStyle = "bold"
android:paddingLeft = "12dp"
android:paddingRight = "12dp"
android:background="@drawable/blue_round_cornor_background" />
</LinearLayout>
<ImageView
android:id="@+id/next_arrow"
android:src="@drawable/next_arrow"
android:layout_toLeftOf="@+id/saved_purchased"
android:scaleType="fitXY"
android:layout_height="25dp"
android:layout_width="18dp"
android:layout_centerVertical="true"
android:visibility = "gone"/>
<ImageView
android:id="@+id/saved_purchased"
android:layout_alignParentRight="true"
android:layout_alignParentTop ="true"
android:scaleType="fitXY"
android:layout_height="25dp"
android:layout_width="25dp"
android:layout_marginRight="2dp"/>
</RelativeLayout>
以下是“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坦诚地分享他们在这项业务中的成功故事。这个故事将帮助每个人听到意识到没有人是完美的,即使在第二代业务。这是一个流音频文件。
还有一些问题吗?我可以更多地更新问题。
答案 0 :(得分:44)
从one of my books引用自己:
Android的TextView类具有“ellipsize”文本的内置功能, 截断它并在文本长于可用时添加省略号 空间。例如,您可以通过android:ellipsize属性使用它。 这种方法效果很好,至少对于单行文本而言。 Android使用的省略号不是三个句点。而是使用实际的 省略号字符,其中三个点包含在单个字形中。 因此,您使用的任何字体也使用“椭圆化”功能 需要省略号字形。
除此之外,Android会将屏幕上呈现的字符串填充掉,这样前后的长度(以字符为单位)是相同的 “ellipsizing”。为了使这项工作,Android用一个字符替换一个字符 省略号,并用Unicode替换所有其他删除的字符 角色'ZERO WIDTH NO-BREAK SPACE'(U + FEFF)。这意味着 省略号后面的“额外”字符不会占用任何可见空间 屏幕,但它们可以成为字符串的一部分。
但是,这意味着您用于TextView小部件的任何自定义字体 你使用android:ellipsize也必须支持这个特殊的Unicode 字符。并非所有字体都可以,并且您将在屏幕上获得工件 如果您的字体缺少此字符,则表示缩短的字符串 (例如,流氓X出现在行尾)。
答案 1 :(得分:6)
我尝试使用自定义“MetaPro-Medium.otf”作为TextView
的字体时遇到了同样的问题
android:singleLine="true"
。
字符串末尾的方框真的很烦人。
我发现在Android中没有办法解决这个问题,但同时找到了以下解决方法。
结果我得到了更新的字体和问题消失了。
答案 2 :(得分:2)
当我尝试显示来自webservice url的内容时,我面临着一些特殊符号的相同问题(显示框([])),我不使用android:ellipsize。然后我替换
中的代码textview.settext(content);
到
textview.settext(Html.fromHtml(content));
工作正常。
答案 3 :(得分:1)
Arslan,你的布局在我的情况下工作正常,我已经测试了同样的:
<TextView
android:id="@+id/row_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="18sp"
android:ellipsize="end"
android:maxLines="1"
android:text="This is the demo testing demo testing This is the demo testing demo testing"/>
...并根据需要获得确切的输出“一行以......结尾”,并且应删除框。所以我认为你设置的任何字符或文字可能有问题。
答案 4 :(得分:1)
实际上我遇到了这个问题而不是更改字体或使用setText我只是将scrollHorizontally添加为false并修复了额外的框字符
android:singleLine="true"
android:scrollHorizontally="false"
android:ellipsize="end"
答案 5 :(得分:0)
在我的项目中遇到了类似的问题,我在文本视图中使用字体类型。很少有字体类型有这些问题使...最后显示为[]。如果您尝试更改字体,问题就会解决。