TextView滚动显示

2018-03-01  本文已影响0人  Charein

在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显示全英文字符,会出现滚动不正常(跳动),笔者不知道这是什么情况,但是全英文字符插入一个中文字符,则滚动显示正常。

上一篇下一篇

猜你喜欢

热点阅读