1、重写TextView
class TextViewMarquee : AppCompatTextView {constructor(context: Context?) : super(context!!) {}constructor(context: Context?, attrs: AttributeSet?) : super(context!!, attrs) {}constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context!!, attrs, defStyleAttr) {}/*** 必须重写改方法设置为true* @return Boolean*/override fun isFocused() = true
}
2、布局文件中配置
<com.demo.basis.weight.TextViewMarqueeandroid:id="@+id/mMarquee"android:layout_width="match_parent"android:layout_height="?actionBarSize"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:gravity="center"android:marqueeRepeatLimit="marquee_forever"android:singleLine="true"android:text="我就是一个跑马灯!!!我就是一个跑马灯!!!我就是一个跑马灯!!!我就是一个跑马灯!!!"android:textColor="@color/black" android:textSize="@dimen/sp_18" />
注:这四个方法是在xml中必须配置的
* android:ellipsize="marquee"
* android:focusable="true"
* android:focusableInTouchMode="true"
* android:gravity="center"
* android:marqueeRepeatLimit="marquee_forever"
* android:singleLine="true"