gpt4 book ai didi

android - android :ellipsize ="end" 的奇怪问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:41 27 4
gpt4 key购买 nike

我在 android xml 文件中使用 android:ellipsize="end" ,令人惊讶的是我没有得到我想要的布局,显示了 3 个点 (...) 但在那之后点还有一个词被截断了。这也是一种“不总是”的行为,检查附加的 ListView,有时,行为是正常的,有时不是。

这是我设备的布局截图,

enter image description here

我不知道为什么会这样。这是我的 xml 文件,tv_news_content TextView -

有问题
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/white" >

<ImageView
android:id="@+id/iv_next_tier"
android:layout_width="18dp"
android:layout_height="21dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:src="@drawable/right_arrow" >
</ImageView>

<TextView
android:id="@+id/tv_news_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="7dp"
android:layout_marginRight="5dp"
android:layout_marginTop="3dp"
android:layout_toLeftOf="@+id/iv_next_tier"
android:ellipsize="end"
android:maxLines="2"
android:text="News Title"
android:textColor="@color/black"
android:textSize="17dp"
android:textStyle="bold" />

<TextView
android:id="@+id/tv_news_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tv_news_title"
android:layout_below="@+id/tv_news_title"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/iv_next_tier"
android:ellipsize="end"
android:maxLines="2"
android:text="News Contents"
android:textColor="@color/black_light"
android:textSize="15dp" />

<View
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_below="@+id/tv_news_content"
android:layout_marginTop="5dp" />

为了清楚起见,tv_news_title 是最上面的粗体 TextView,而 iv_next_tier 是右侧的小箭头型 ImageView。 & tv_news_content 是我遇到问题的 TextView。

为什么我没有得到想要的输出的任何解决方案?期望的输出意味着始终正常的行为 - 我想要 tv_news_content TextView 第二行末尾的 3 个点,而不是截断的单词之前。

如有任何建议,我们将不胜感激。

最佳答案

终于在我的应用中找到导致此问题的原因!!

虽然 RuAware 的回答让我走上了正确的道路,但我发现它并没有解决我所有文本 block 的问题。鉴于它对某些人有效,我觉得这显然是由于某些恶意角色。所以我检查了一个损坏的文本 block ,然后开始删除字符,直到它停止损坏。

原来是换行符 '\n' 导致了它。即使新行位于省略号之后,只要新行字符位于字符串中的某处,它就会[不一致地]导致此问题。

在将文本设置到您的 View 之前,通过执行类似于以下操作的操作可以解决此问题:

text = text.replace('\n',' ');

关于android - android :ellipsize ="end" 的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17131294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com