gpt4 book ai didi

android - 在带有选取框椭圆大小的 TextView 上设置 textIsSelectable 会添加椭圆

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:50 25 4
gpt4 key购买 nike

我的应用程序中的屏幕可能会将非常长的字符串发布到 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">

有没有办法让文本可选择并仍然在选取框(没有椭圆)中保留整个字符串?

最佳答案

不能确定这是否是一个错误。

<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"/>

请注意,我们在 xml 中设置 android:ellipsize="start" - 稍后会详细介绍。

mTextView = (TextView) findViewById(R.id.tv);
mTextView.post(new Runnable() {
@Override
public void run() {
mTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
mTextView.setSelected(true);
}
});

setEllipsize(TruncateAt) 检查当前 ellipsize 值是否与提供的值相同。为了解决这个问题,我们在 xml 中提供了 android:ellipsize="start"。这样,TextView 稍后接受 TextUtils.TruncateAt.MARQUEE 就没有问题了。

现在,即使这有效,我还是建议您不要这样做。您将能够明白为什么 - 一旦您尝试了这段代码。 textIsSelectable 似乎不应该与 marquee 一起使用 - 选择 handle 不会随文本一起移动。

总而言之,它看起来非常粗略。

关于android - 在带有选取框椭圆大小的 TextView 上设置 textIsSelectable 会添加椭圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33872104/

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