TextView跑马灯无效的解决办法
16lz
2021-01-23
若要让TextView里的文本滚动,必须满足以下几个因素:
1,TextView里文本宽度超过TextView的宽度
2,android:ellipsize="marquee"
3,只有在TextView获取到焦点时,才会滚动.所以加上android:focusableInTouchMode="true" android:focusable="true"(对于使用marquee即滚动显示方式的,需要当前textview获得焦点才会滚动。所以有时可能因为实际需要,textview未获得焦点或者需要多个textview都同时滚动显示时,可以采用以下办法:
因为判断textview是否处于focused状态是通过它本身isFocused()方法,这样只要此方法返回为true时,即认为处于focused的状态,就可以滚动啦。所以可以通过继承TextView类,并override isFocused()方法来控制是否滚动咯。)
最容易忽略的是第三条.滚动重复次数设置: android:marqueeRepeatLimit="marquee_forever"
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:
android:ellipsize=”start”—–省略号显示在开头 "...pedia"
android:ellipsize=”end”——省略号显示在结尾 "encyc..."
android:ellipsize=”middle”—-省略号显示在中间 "en...dia"
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)
更多相关文章
- Android TV上的焦点切换效果
- Android自定义TextView省略号样式
- 防止刚进入activity的时候,edittext获取焦点,自动弹出软键盘
- EditText获取焦点不自动弹出键盘设置
- TextView设置最多显示指定个字符,超过部分显示...(省略号)
- android 获取屏幕的宽度和高度
- Android Studio——Android获取屏幕宽度的4种方法
- Android Studio获取到焦点的监听