最好用的滚动textview 改进网上流行的方法

2021-11-27  本文已影响0人  吉凶以情迁

为啥说最好用呢,因为无需继承也能用,也可以使用继承,网上的方法只知其然不知所以然,以为必须复写才能让多个textview滚动,其实设置select为true也可以让其实现滚动。
ScrollTextView .setEnableScroll(holder.getBinding().tvVendorFullname);



import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.Gravity;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;

/**
 * Author:Lozn
 * Email:qssq521@gmail.com
 * 2021/10/30
 * 11:36
 */
public class ScrollTextView  extends AppCompatTextView {
    public ScrollTextView(@NonNull Context context) {
        super(context);
        init(context);
    }

    public static void setEnableScroll(TextView editText) {
        editText.setSelected(true);
        editText.setGravity(Gravity.LEFT);
        editText.setFocusable(true);
        editText.setFocusableInTouchMode(true);
        editText.setMarqueeRepeatLimit(-1);
        editText.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        editText.setHorizontallyScrolling(true);
        editText.setTextSize(13);
        editText.setSelected(true);
    }

    private void init(Context context) {
        ScrollTextView.setEnableScroll(this);
    }

    public ScrollTextView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }

    public ScrollTextView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);
    }

    @Override
    public boolean isFocused() {
        if(!isSelected()){
            return true;
        }
        return super.isFocused();
    }
}

上一篇下一篇

猜你喜欢

热点阅读