Android(安卓)多行跑马灯 解决焦点抢占
16lz
2021-12-04
这一篇 是上一篇的升级版 ,可以实现多行跑马灯效果,
主要解决了在焦点抢占导致的事件冲突问题
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"?>
这下我们就可以实现多行跑马灯效果的实现
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 修改SeekBar样式
- Android(安卓)4.0 HttpUrlConnection的getInputStream()方法总是
- 2011.08.15(2)——— android audioManager解决MediaPlayer AudioT
- android中The connection to adb is down .. You must restart a
- android 7.1 默认壁纸拉伸问题
- ANDROID 编译源码6.0 问题记录
- android开发遇到的问题
- Android8.0 页面崩溃问题