TextView文字跑马灯效果

项目中要用到跑马灯效果,如下:
TextView文字跑马灯效果_第1张图片
虽说看起来挺简单,但还是踩了好几个坑,故此记录一下。


刚开始的时候以为设置以下两个参数就好:

android:lines="1"
android:ellipsize="marquee"

“ellipsize”参数代表text view文字设置一行显示的时候文字显示不下将以何种方式显示,总共有5个参数:

  • start:表示将文字开头省略,用“…”代替
  • middle:表示将文字中间省略,用“…”代替
  • end:表示将文字末尾省略,用“…”代替
  • marquee:表示当文字一行展示不下时,以跑马灯滚动效果展示
  • none:即默认,没有任何效果

但是设置marquee之后发现并没有效果,后来网上查阅资料,又添加了以下参数:

android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
注:以上代码少一行都会导致没有效果

但当我使用的时候还是不行,于是我又把网上的代码直接粘过来,好使了。。。我只好一行一行检查代码,看哪里跟人家不一样,后来发现只有一处不同。
在限制文字行数的时候我用的是:

android:lines="1"

人家用的是:

android:singleLine="true"

我之后也改为singleLine,效果果然有了。


在用singleLine的时候,studio会有方法过时提示:
这里写图片描述
官方推荐使用maxLines代替,但是当我使用maxLines的时候,效果又没了,只好换回来,有知道的请解答一下,谢谢!

你可能感兴趣的:(点滴)