我整个移动的view是继承了HorizontalScrollView,但是发现我遥控器向右移动的时候,view没焦点了,我view里面有一个跑马灯效果,就是在有焦点的时候才出现跑马灯,没焦点的时候隐藏这段显示的文字,如下就是跑马灯的效果并解决了焦点冲突问题:
public class AutoScrollTextView extends TextView { public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public AutoScrollTextView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public AutoScrollTextView(Context context) { super(context); init(); } @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { if (focused){ super.onFocusChanged(focused, direction, previouslyFocusedRect); }else{ super.onFocusChanged(false, direction, previouslyFocusedRect); } } @Override public void onWindowFocusChanged(boolean focused) { if (focused) super.onWindowFocusChanged(focused); } @Override public boolean isFocused() { return true; } private void init() { setEllipsize(TextUtils.TruncateAt.MARQUEE);// 对应android:ellipsize="marquee" setMarqueeRepeatLimit(-1);// 对应android:marqueeRepeatLimit="marquee_forever" setSingleLine();// 等价于setSingleLine(true) } @Override public void setVisibility(int visibility) { super.setVisibility(visibility); if(visibility== View.VISIBLE){ setFocusable(true); }else if(visibility==View.INVISIBLE){ setFocusable(false); } } }记录下!