在Android中,如果需要设置TextView滚动显示,则必须ellipsize、focusable、singleLine这几个属性
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:text="我是中国人我是中国人我是中国人我是" />
如果页面包括多个滚动显示的TextView,默认情况下,只会有一个TextView可以滚动显示,因为滚动显示需要获取焦点。为了都能够滚动显示,可以让TextView的isFocused()方法返回true,这样就可以获取到焦点。自定义TextView代码如下:
public class MarqueeTextView extends AppCompatTextView {
public MarqueeTextView(Context context) {
super(context);
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean isFocused() {
return true;
}
}
某种情况下(如:将页面显示在第二显示器),TextView显示全英文字符,会出现滚动不正常(跳动),笔者不知道这是什么情况,但是全英文字符插入一个中文字符,则滚动显示正常。
网友评论