今天在做一个专辑列表,要求专辑上标题文字超过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,再次记录下
在电视开发中,创建专辑列表时遇到TextView跑马灯问题。当标题超过8个字符,需在焦点状态下实现跑马灯效果。通过设置属性如setFocusable、setSingleLine、setEllipsize等无法达到预期,最终通过自定义TextView并重写isFocused()方法,使其始终返回true,成功解决跑马灯无法启动的问题。
1398

被折叠的 条评论
为什么被折叠?



