一.第一种方法
1.在TextView中设置相关属性
1. android:ellipsize="marquee" 设置跑马灯显示效果
2. android:focusable="true" 获得焦点才能滚动
3. android:marqueeRepeatLimit="-1" 设置滚动次数 1代表1次 -1代表无限循环
4. android:singleLine="true" 必须单行显示
5. android:focusableInTouchMode="true" 获得焦点才能滚动```
2.问题:
1.这种方法实现的效果不是很理想,刚进入页面的时候Title滚动效果略微卡顿
2.在切换到全屏之后在切换回竖屏状态下时,TextView的滚动效果停止了
二.第二种方法
1.写一个自定义的TextView继承TextView,重写isFocused方法,返回True,用此方法来获得焦点
1.在xml控件中写上第一种方法的1.3.4就可以了
public class MarqueeTextView extends TextView {
public MarqueeTextView(Context context) {
super(context);
}
public MarqueeTextView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MarqueeTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@SuppressLint("NewApi")
public MarqueeTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean isFocused() {
return true;
}
}