Android跑马灯无焦点滚动

博客介绍了Android跑马灯效果的实现,通过设置TextView的相关属性可实现基本跑马灯,但该方式在失去焦点时停止滚动。为实现一直滚动,多数资料建议重定义TextView控件、重写onFocusChanged方法,经测试效果不佳。最终发现重写onWindowFocusChanged并屏蔽super方法可解决问题。

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

关键代码如下:

   //设置为跑马灯显示
           android:ellipsize="marquee"

           //获取焦点
          android:focusable="true"

          //可以通过toucth来获得focus
          android:focusableInTouchMode="true"

          //设置重复的次数
          android:marqueeRepeatLimit="marquee_forever"

          //单行显示文字
          android:singleLine="true"

使用属性设置要注意:这种属性配置只能在TextView获取焦点的时候跑马灯才会滚动,一旦失去焦点跑马灯就不会滚动
如果没有特殊需求的话使用这种还是简单方便的,但是如果需要跑马灯一直在滚动的话单纯的这样是做不到的,
于是上网查了各种资料,大多数都是重定义TextView控件,重写onFocusChanged方法,里面什么也不做,
将super的调用直接屏蔽,但经过测试这种还是不行,如果在dialog弹出时,显示效果和TextView属性配置是一样的结果,
但是如果再在自定义的控件类中重写onWindowFocusChanged,将super方法屏蔽掉,这样就达到效果了,
就算是dialog弹出也不影响跑马灯的显示效果,

https://blog.youkuaiyun.com/lplj717/article/details/72729767

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值