android 关于textview跑马灯的问题解决方案

在电视开发中,创建专辑列表时遇到TextView跑马灯问题。当标题超过8个字符,需在焦点状态下实现跑马灯效果。通过设置属性如setFocusable、setSingleLine、setEllipsize等无法达到预期,最终通过自定义TextView并重写isFocused()方法,使其始终返回true,成功解决跑马灯无法启动的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做一个专辑列表,要求专辑上标题文字超过8个在有焦点的情况下就跑马灯,因为是做电视开发,所以view要做什么操作都是要有焦点的,而布局我没有用xml的方式,而是直接用代码的形式,我设置了这几个值,

//isMarquee的值为true

tv.setFocusable(isMarquee);
tv.setFocusableInTouchMode(isMarquee);
tv.setSingleLine(true);
tv.setEllipsize(TruncateAt.MARQUEE);
tv.setHorizontallyScrolling(isMarquee); //让文字可以水平滑动
tv.setMarqueeRepeatLimit(repeatCount);//无限循环

发现并没有什么用,于是就发现要自定义一个textView,复写他的isFocused()方法:直接让他有焦点

@Override
@ExportedProperty(category = "focus")
public boolean isFocused() {
return true;
}


这样问题就解决了 ok,再次记录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值