解决一个页面多个跑马灯显示

来源:互联网 发布:python缺省参数 编辑:程序博客网 时间:2024/06/05 21:49

在开发过程中肯定会有各种各样的项目需求,里面就包括一个页面展示多个跑马灯的效果,刚开始的时候感觉不就是多写几个跑马灯吗?有什么难度啊!于是就动手立刻去实现这个功能

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,再来运行一下效果如下


这时我们想要的效果就出来了

阅读全文
0 0