我整个移动的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); } } }记录下!
Android TV跑马灯效果与HorizontalScrollView焦点冲突解决
本文介绍了在Android TV应用中,当一个移动视图继承自HorizontalScrollView时遇到的焦点问题。作者发现遥控器向右移动时,视图失去焦点,导致跑马灯效果无法正常显示。为了解决这个问题,文章详细讲解了如何实现跑马灯效果,并在有无焦点状态下控制显示,同时解决了焦点冲突的问题。
2470

被折叠的 条评论
为什么被折叠?



