我在我的电视项目中使用水平回收视图。我正在为回收视图项目设置焦点。所以使用 d pad 我可以移动。当我做正常按键时,一切正常。但是当我试图做一个快速在焦点到达最后一个可见的子焦点后使用 dpad 滚动到第一个项目并发生循环焦点更改。我看到了一些解决方法,但没有什么对我有用。
问问题
1114 次
1 回答
1
扩展您的布局管理器并添加以下代码段
@Override
public View onInterceptFocusSearch(View focused, int direction) {
if (this.getOrientation() == HORIZONTAL) {
if (direction == View.FOCUS_RIGHT) {
View view = getChildAt(getChildCount() - 1);
if (view == focused)
return focused;
}
}
else if(getOrientation() == VERTICAL){
if (direction == View.FOCUS_DOWN) {
View view = getChildAt(getChildCount() - 1);
if (view == focused)
return focused;
}
}
return super.onInterceptFocusSearch(focused, direction);
}
基于方向,我正在处理正确的焦点和向下的焦点。您可以根据自己的需要进行编辑。
于 2018-08-09T18:41:02.397 回答