andriod给ListView中的TextView增加跑马灯效果

正常情况下跑马灯效果只需要在TextView中添加android:ellipsize="marquee" android:singleLine="true"

android:focusable="true"属性就可以了,不过这个方法要求指定的TextView必须要获取焦点,而在ListView中这个焦点的获取就变得疑惑了.

解决的方法按照惯例分三步:

1.作为子控件的TextView只添加android:ellipsize="marquee" android:singleLine="true"不添加android:focusable="true"属性

2.在ListView中添加android:focusable="true"属性

3.在代码中为需要显示走马灯效果的那个TextView添加setSelected(true);方法

 

viewHolder.checkInfotable.setOnItemClickListener(new OnItemClickListener() {
				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,
						int arg2, long arg3) {
					arg1.setSelected(true);
				}
			});

 

 这是我的调用方法;

 

另外跑马灯效果默认是无限循环的,可以通过 android:marqueeRepeatLimit="1"属性来设置循环的次数

你可能感兴趣的:(ListView,textview,跑马灯)