解决一个页面多个跑马灯显示
2017-12-14 12:59
190 查看
在开发过程中肯定会有各种各样的项目需求,里面就包括一个页面展示多个跑马灯的效果,刚开始的时候感觉不就是多写几个跑马灯吗?有什么难度啊!于是就动手立刻去实现这个功能
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,再来运行一下效果如下
这时我们想要的效果就出来了
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,再来运行一下效果如下
这时我们想要的效果就出来了
相关文章推荐
- 在一个页面显示多个iChart报表
- scrollview中嵌套多个listview解决每个listview只显示一个item
- 一个手机自适应的网页效果解决显示页面很小的问题
- 如何将一个项目拆解成多个moudule,并解决页面层的共有问题
- 百度地图:一个页面多个地图,只显示一个地图的解决办法
- 一个页面中需要多个window.onload = function(){}冲突问题解决
- 如何在一个页面显示多个百度地图
- ideal中如何添加几个不同的项目在同一个idea页面显示(同一个窗口显示多个工程)
- 在一个页面中显示多个activity
- 解决前一个页面导航栏是隐藏的,后一个页面导航栏是显示的,从后一个页面pop 的时候,导航栏底部会有黑底或白底
- 一个手机自适应的网页效果解决显示页面很小的问题
- 同一页面无法显示多个模态框的解决办法
- 解决Bootstrap一个页面弹出的模态框嵌套多个模态框时,样式混乱,按钮不能点击。
- 如何在一个页面显示多个百度地图
- 解决Android TextView使用Html多个空格只显示一个空格
- 在一个页面中显示多个activity
- 在一个页面中显示多个activity
- 关于PHP页面显示乱码问题的解决
- 解决在评论中能在后台数据库中插入数据,但是在页面不显示的问题(2006-08-27 16:28:19)
- 解决IE下某些页面不能刷新显示的问题