理由

:宽度“a”小于“a”,因此,如果基于某种大小(比如15个字母)截断字符串并通过代码添加“…”。你可能会看到意想不到的结果。

现在来看解决方案:-

解决:

将以下3个属性添加到TextView中,您将获得所需的结果:)

android:ellipsize="end"

android:lines="1"

android:scrollHorizontally="true" />

解决方案2:

另一个解决方法可能是,你可以决定选择文本框(从右向左移动文本的奇特动画)。为此,您需要在TextView xml中使用以下属性:-

android:id="@+id/my_text_view"

android:ellipsize="marquee"

android:lines="1"

android:scrollHorizontally="true"

android:marqueeRepeatLimit="marquee_forever" />

然后在代码中,您需要根据TextView的id获取它,并放入以下行:-

TextView myTextView = (TextView) findViewById(R.id.my_text_view);

myTextView.setSelected(true);

####编辑:####

我刚刚发现,要使我的解决方案在高于2.3.x的android版本中工作,我们需要在TextView xml中添加以下行:-

android:singleLine="true"

虽然它是一个弃用的属性,但你必须添加这个,否则选框或“…”不会工作。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐