代码如下:
<TextView android:id="@+id/tv_title" android:gravity="left" android:layout_gravity="center" android:ellipsize="marquee" android:singleLine="true" android:shadowColor="@color/colorAccent" android:shadowRadius="3" android:shadowDx="10" android:background="@color/blue" android:shadowDy="10" android:text="首次做理财软件,特价100" android:marqueeRepeatLimit="marquee_forever" android:textColor="@color/button_red" android:textSize="@dimen/font_size" android:layout_width="120dp" android:maxWidth="200dp" android:layout_height="wrap_content"/>
发现不设置focusable ,和当文本width小于控件的宽度时.跑马灯时不管用的.看源码把如下:
要想跑马灯跑起来起码要满足或者不满足以上箭头语句
1.
对于不是editText,会是null,所以false 向下执行
2.这个主要是对文字长度和控件长度比较,如下
是硬件加速直接返回, 文体长度稍大一点点要返回true ,那么跑马灯就没有用
3.主要是设置setFocusable(true)或者在xml直接设置,当然也可重写isFocused()方法返回true
4.主要是设置singlines属性,maxlines没有效果.
5.代码如下:
主要是判断文体长度是否大于控件长度,是就返回true;
发现指令能够执行下来,跑马灯也没有用......重写isFocused()是有用,只是代码或者在xml直接设置是没有用的,要使用
tvTitle.setFocusableInTouchMode(true); tvTitle.requestFocus();
获得焦点