一.第一種方法
1.在TextView中設(shè)置相關(guān)屬性
1. android:ellipsize="marquee" 設(shè)置跑馬燈顯示效果
2. android:focusable="true" 獲得焦點(diǎn)才能滾動(dòng)
3. android:marqueeRepeatLimit="-1" 設(shè)置滾動(dòng)次數(shù) 1代表1次 -1代表無(wú)限循環(huán)
4. android:singleLine="true" 必須單行顯示
5. android:focusableInTouchMode="true" 獲得焦點(diǎn)才能滾動(dòng)```
2.問(wèn)題:
1.這種方法實(shí)現(xiàn)的效果不是很理想,剛進(jìn)入頁(yè)面的時(shí)候Title滾動(dòng)效果略微卡頓
2.在切換到全屏之后在切換回豎屏狀態(tài)下時(shí),TextView的滾動(dòng)效果停止了
二.第二種方法
1.寫(xiě)一個(gè)自定義的TextView繼承TextView,重寫(xiě)isFocused方法,返回True,用此方法來(lái)獲得焦點(diǎn)
1.在xml控件中寫(xiě)上第一種方法的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;
}
}