android UI中滚动条目的实现

来源:互联网 发布:听英语的软件 编辑:程序博客网 时间:2024/06/05 19:42

如何在TextView控件中实现自动滚动的条目?

先抛结论: 1. 设置ellipsize属性为marquee  2.该控件持续获取焦点(is focused)

接下来引入ellipsize属性,ellipsize是省略号的意思,该属性如何工作呢?当控件中的内容超过文本框的长度时,如果ellipsize置为start,

则显示出省略号和最后一段内容,如果为middle,则显示出最前面的一段内容,省略号,最后的一段内容,如果置为end,则显示出最前面的

一段内容和省略号,我们这里要用的是marquee属性,即选取框的意思,此时会用选取框动态截取整个内容,显示出来,从而达到滚动条目

的效果.

一般情况下,TextView是不可以通过点击获取焦点的,即使可以,也不推荐,每次要点击之后才能实现滚动效果,不是我们需要的效果.而在

TextView中有这样一个方法isFocused(); 该方法会判断当前控件是否获取到了焦点,我们直接自定义一个FocusedTextView继承TextView,

继承父类中的构造方法,重写父类的isFocused()isFocused(), 直接返回true,使其成为一个永远自动获取焦点的TextView.

所以,在这个自定义的TextView中设置好ellipsize属性就可以完成滚动条目了

0 0