【问题标题】:Marquee on TextView does not work after call to setText()调用 setText() 后,TextView 上的选取框不起作用
【发布时间】:2016-03-31 11:48:21
【问题描述】:

我们正在开发一个需要在 API19 上运行的应用。 我们应该在 VideoView 上显示文本,当文本较长时(超过容器内的长度),我们希望水平滚动/选取文本。

虽然 TextView 有一个属性来指定 Marquee,但我们无法让它工作。

这是 XML 定义:

android:visibility="invisible"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"

以下是如何以编程方式使其可见:

textView.setVisibility(View.VISIBLE);
textView.setSelected(true);
textView.setEnabled(true);

我什至尝试以编程方式设置所有属性,而不是 XML 定义。没有任何尝试奏效。关于这个话题有很多问题,我尝试了几乎所有的建议,但是这无法奏效。

更新: 如果我不调用 textView.setText() ,它工作正常。从这个答案:https://stackoverflow.com/a/13765865/560449 似乎我们无法在调用 textView.setText() 后获得选取框效果以继续工作。有人知道解决这个问题吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    刚刚摆脱了这个问题,发现这里没有涉及火箭科学!

    您只需在代码中调用setText() 后以编程方式设置所有属性。

    例如

    mTvTitle.setText("skjdfbaskjfdbkajbgjkbgjkdbgkjg");
            mTvTitle.setEllipsize(TextUtils.TruncateAt.MARQUEE);
            mTvTitle.setSingleLine(true);
            mTvTitle.setMarqueeRepeatLimit(5);
            mTvTitle.setSelected(true);
    

    完成!这对我来说效果更好。

    SOF REFERENCE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      相关资源
      最近更新 更多