Android 多行跑马灯 解决焦点抢占
16lz
2021-01-23
这一篇 是上一篇的升级版 ,可以实现多行跑马灯效果,
主要解决了在焦点抢占导致的事件冲突问题
MainActivity
package com.android.marquee;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void alertDialog(View view){ AlertDialog.Builder alertDialog=new AlertDialog.Builder(this); alertDialog.setTitle("弹框一"); alertDialog.setMessage("弹框二"); alertDialog.show(); }}
自定义控件MarqueeView,解决焦点抢占导致的事件冲突问题
package com.android.marquee;import android.content.Context;import android.graphics.Rect;import android.text.TextUtils;import android.util.AttributeSet;/** * date:2018/11/12 * author:李壮(HUAWEI) * function:自定义控件 */public class MarqueeView extends android.support.v7.widget.AppCompatTextView { public MarqueeView(Context context) { this(context,null); } public MarqueeView(Context context, AttributeSet attrs) { this(context, attrs,0); } public MarqueeView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); //设置单行 setSingleLine(); //设置Ellipsize setEllipsize(TextUtils.TruncateAt.MARQUEE); //获取焦点 setFocusable(true); //走马灯的重复次数,-1代表无限重复 setMarqueeRepeatLimit(-1); //强制获得焦点 setFocusableInTouchMode(true); } /* *这个属性这个View得到焦点,在这里我们设置为true,这个View就永远是有焦点的 */ @Override public boolean isFocused() { return true; } /* * 用于EditText抢注焦点的问题 * */ @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { if (focused) { super.onFocusChanged(focused, direction, previouslyFocusedRect); } } /* * Window与Window间焦点发生改变时的回调 * */ @Override public void onWindowFocusChanged(boolean hasWindowFocus) { if (hasWindowFocus) super.onWindowFocusChanged(hasWindowFocus); }}
布局文件
<?xml version="1.0" encoding="utf-8"?>
这下我们就可以实现多行跑马灯效果的实现
更多相关文章
- Tab控件 笔记
- Android 工程混淆后无法找到自定义控件类的解决方案
- Android中的常用控件
- 系出名门Android(8) - 控件(View)之TextSwitcher, Gallery...
- 【Android UI控件】EditText属性大全,TextView属性大全
- Android 控件使用之SlidingDrawer
- Android利用drawable文件夹自定义控件背景、样式
- Android EditText自动获取焦点并弹出软键盘,解决EditText在获取