简书链接:最好用的滚动textview改进网上流行的方法
文章字数:88,阅读全文大约需要1分钟
为啥说最好用呢,因为无需继承也能用,也可以使用继承,网上的方法只知其然不知所以然,以为必须复写才能让多个textview滚动,其实设置select为true也可以让其实现滚动。
ScrollTextView .setEnableScroll(holder.getBinding().tvVendorFullname);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
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:[email protected] * 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(); } }
|