解决一个页面多个跑马灯显示
在开发过程中肯定会有各种各样的项目需求,里面就包括一个页面展示多个跑马灯的效果,刚开始的时候感觉不就是多写几个跑马灯吗?有什么难度啊!于是就动手立刻去实现这个功能
1、新建Android工程
2、在MainActivity默认界面中修改自动生成的TextView属性
//当显示内容超出了文本框,多余的部分marquee滚动处理
android:ellipsize="marquee"
//是否允许获取焦点
android:focusable="true"
//是否进去触摸输入模式
android:focusableInTouchMode="true"
//是否为单行显示,如果是true则超出的部分用……代替
android:singleLine="true"
3、运行效果如图
这样一来就实现跑马灯的效果了,重新在一个不就行啦,结果呢,是这个样子的
这个好像不是我们要的结果啊,为什么会这样的?那是因为在android系统中,TextView要想实现跑马灯效果就必须的获取焦点才可以,我们在xml文件里也设置相应的属性了啊?为什么还不可以,因为你用的是Android系统自己的TextView,当某一个控件requestFocus()时就会把其他的控件焦点给抢去,所以在这里需要我们去重新自定义一个TextView,新建一个class继承TextView,重写里面的构造方法,最后在重写一个isFocused()方法,最后return true;最后把xml文件中的TextView替换成我们自定义的TextView,再来运行一下效果如下
这时我们想要的效果就出来了