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属性设置一样即可。