[原创] 开启 Android TextView Marquee

亲测可能。直接上代码。
测试机器:XiaoMi 2S Android 5.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<TextView
android:id="@+id/toolbar_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:fadingEdge="none"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:scrollHorizontally="true"
android:textColor="#fff"
android:textSize="16sp" />

1
mToolbarTitle.setSelected(true);

说明:
XML 中以下几行是必须的:

1
2
3
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"

最后别忘了,JAVA 中还需要调用 TextView 的 setSelected(true) 方法。
特别注意:
目前发现,android:singleLine=”true” 这种写法需要已经被废弃了,但是目前只能这么写 Marquee 才能生效。如果换成最新的写法 android:maxLines=”1”,你会发现,Marquee 并不能滚动。不知道为什么。如果有知道原因的,或者有更好的写法的,欢迎大家热烈谈论。

坚持原创及高品质技术分享,您的支持将鼓励我继续创作!