我的应用程序中的一个屏幕可能会发送一个非常长的字符串TextView.对于这种情况,我android:ellipsize="marquee"设置了文本将在TextView上进行选取.
但是,我已经决定我也想要这个文本是可选择的(android:textIsSelectable="true").在大多数情况下,这没有问题.文本小于TextView,用户可以选择它.但是,如果我有textIsSelectable属性并且文本大于TextView,则文本将拾取椭圆而不是完整字符串. 它仍然是字幕,但它不再显示全文.它会将其剪掉并显示椭圆形.
<TextView
android:layout_width="wrap_content"
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:ellipsize="marquee"
android:focusable="true"
android:gravity="center_vertical"
android:singleLine="true"
android:textIsSelectable="true">
Run Code Online (Sandbox Code Playgroud)
有没有办法让文本可选并仍然保持整个字符串(没有椭圆)?
无法确定这是否是一个错误。
<TextView
android:layout_width="wrap_content"
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:ellipsize="start"
android:focusable="true"
android:gravity="center_vertical"
android:singleLine="true"
android:textIsSelectable="true"/>
Run Code Online (Sandbox Code Playgroud)
请注意,我们android:ellipsize="start"在 xml 中进行设置 - 稍后将详细介绍。
mTextView = (TextView) findViewById(R.id.tv);
mTextView.post(new Runnable() {
@Override
public void run() {
mTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
mTextView.setSelected(true);
}
});
Run Code Online (Sandbox Code Playgroud)
setEllipsize(TruncateAt)检查当前ellipsize值是否与提供的值相同。为了解决这个问题,我们android:ellipsize="start"以 xml 形式提供。这样以后TextView接受就没有问题了。TextUtils.TruncateAt.MARQUEE
现在,即使这有效,我还是建议你不要这样做。一旦你尝试了这段代码,你就会明白为什么。它似乎textIsSelectable 不应该与marquee- 选择手柄不随文本一起移动。
总而言之,它看起来非常粗略。
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |