TextView跑马灯问题

BeiHaiZuoPeng 2012-09-12

今天无意中发现一个问题,之前在项目中都用的好好的textview跑马灯效果现在却不滚动了,显示的是文字+省略号,代码如下:

<TextView
         android:id="@+id/tv_text_msg"
         android:layout_width="400dp"
         android:layout_height="wrap_content"
         android:ellipsize="marquee"
         android:scrollHorizontally="true"
         android:gravity="center"
         android:singleLine="true"
         android:layout_centerHorizontal="true"
         android:layout_alignParentTop="true"
         android:layout_marginTop="45dp"
         android:marqueeRepeatLimit="marquee_forever"
         android:focusable="true"
         android:focusableInTouchMode="true"
         android:textSize="18sp"
         />

后来经比较发现,当跑马灯效果显示正常时,这个textview的isFocused返回true,而显示是文字+省略号是返回的是false,由此猜想可能是跑马丁必须要textview获得焦点才能显示正常。

后来改写了一下textview,代码如下:

public class ScrollingTextView extends TextView {
	
	public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {  
        super(context, attrs, defStyle);  
    }  
   
    public ScrollingTextView(Context context, AttributeSet attrs) {  
        super(context, attrs);  
    }  
   
    public ScrollingTextView(Context context) {  
        super(context);  
    }  
    
    @Override  
    public boolean isFocused() {  
        return true;  
    }
	
}

然后在xml中根据类名引用,属性和最上面的textview属性设置一样即可。

相关推荐

开发中的点点滴滴 / 0评论 2015-01-04