在ListView或GridView 中使用到跑马灯滚动效果实现的问题。

一般情况下TextView实现跑马灯效果只要设置一些几个属性即可实现了。

android:singleLine="true“//只显示单行

android:ellipsize="marquee"       //实现滚动效果

android:focusable="true"    //获取焦点,获取不到焦点是无法实现跑马灯滚动的

android:marqueeRepeatLimit="marquee_forever"  // 无限循环滚动

android:marqueeRepeatLimit=”100“ 代表滚动100次

而且文字的长度大于控件的长度时才会出现跑马灯效果。

在Listview 或GridView 中由于其他控件的点击事件占取了焦点,使TextView无法获取到焦点,导致不能实现跑马灯的效果。

解决办法如下:

public class MyTextView extends TextView {

public AlwaysMarqueeTextView(Context context) {

super(context);

}

public AlwaysMarqueeTextView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public AlwaysMarqueeTextView(Context context, AttributeSet attrs,

int defStyle) {

super(context, attrs, defStyle);

}

@Override

public boolean isFocused() {

return true;

}

}

时间: 2024-10-16 13:11:04

在ListView或GridView 中使用到跑马灯滚动效果实现的问题。的相关文章

背景音乐,嵌入式频,跑马灯滚动效果

背景音乐:在hand 中<embed src="music.mp3" hidden="true" autostart="true" loop="true" /> 嵌入视频:去视频网站上,找到分享功能,找到html代码,复制到自己的页面中,就可以了:复制过来的代码很多,但其中有width和height可以用来调节网页中视频的大小: 跑马灯效果:<marquee direction="right&quo

android实现ListView或GridView中item的倒数功能

有时在开发中可能会遇到当未到某个时间时需要让ListView或GridView中的相应item进行倒数的需求,此时,如果还是按照常见的ListView或GridView的Adapter的写法+计时功能来实现的话,则当滚动ListView或GridView的时候,item就可能会出现复用问题(即不需要进行倒数或当前item的倒数已经结束了,却还会出现倒数的现象),因此,为了解决这种问题,需要进行倒数时,重新遍历当前对象的集合,然后让每个对象的相应时间值减1,最后再通过Adapter的notifyD

android使用TextView实现跑马灯的效果(1)

android使用TextView实现跑马灯的效果 1.activity_main.xml <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

跑马灯小效果

今天在项目中需要一个图片跑马灯的效果 , 就用js写了一个 直接上代码吧: css代码: *{margin:0;padding:0;} .clearfix:after { content: ""; display: table; clear: both; } .clearfix: { *zoom: 1; } #div1{ width:1200px;height:200px;margin:100px auto;position:relative;background:red; overf

Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextView必须单行显示,即内容必须超出TextView大小 3.TextView要获得焦点才能滚动(如果还不行,就要用自定义的TextView控件中重写isFocused()返回true就行[方法代码在下面的AlwaysMarqueeTextView 类],但是遇到新问题就是界面有多个这样的控件显示时当

自定义TextView使之具有跑马灯的效果

一.问题的引入 使用普通的textview跑马的效果,一开始没有焦点事件不会进行滚动,button有焦点事件,但是比较难看,因此需要自定一个TextView 一出生就有焦点 然后需要自定义一个textview FocusedTextView.java package com.xuliugen.mobilesafe.ui; import android.content.Context; import android.util.AttributeSet; import android.view.Vi

Android:TextView文字跑马灯的效果实现

解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" androi

关于有多个Fragment中的textview跑马灯问题

============问题描述============ 一个activity里面有多个Fragment,1,2,3,4 其中fragment1中有2个textview,在第一次启动fragment1的时候跑马灯能正常跑马; 当跳转到其他fragment后,再回到fragment1的时候,跑马灯已经不跑马了? 关于这个是textview的焦点问题吗? 求大神解答,,,求大神解决.... ============解决方案1============ 应该不是,应该是生命周期的问题,你把跑马灯别写在o

TextView来实现单行跑马灯的效果

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:ori