Android中TextView:的ellipsize属性

在TextView中,当文字长度超出TextView中显示宽度时,我们可以使用TextView中的ellipsize属性。


如:

android:ellipsize=”start”—–省略号显示在开头 "...pedia"
android:ellipsize=”end”——省略号显示在结尾  "encyc..."
android:ellipsize=”middle”—-省略号显示在中间 "en...dia"
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)

对于marquee滚动显示方式时,我们需要使当前的TextView获得焦点才可以使其正常滚动。


那么如果当两个TextView或者当多个TextView需要滚动显示时,那么就需要这多个TextView都获得焦点,那么怎么解决这个问题呢?


答案:

在当前的activity包中新建一个java class文件,使其继承TextView类,然后复写TextView的三个构造方法,如图:

Android中TextView:的ellipsize属性_第1张图片


然后再复写(override) isFocused()方法。如图:

Android中TextView:的ellipsize属性_第2张图片

使其返回值为true。


最后再在activity布局页面将TextView标签改为这个新建的java类的标签,使多个TextView引用当前的继承了TextView类的MarqueeText。如图:

Android中TextView:的ellipsize属性_第3张图片



那么看看最后的运行结果吧:

Android中TextView:的ellipsize属性_第4张图片

两个TextView都在滚动。


结束。

你可能感兴趣的:(android,studio)