0

这个话题让我发疯。我已经阅读了几乎一百篇关于它的帖子,但没有一篇能反映我的情况。我在 AndroidTV 上运行的应用程序中使用了一个简单的 RecyclerView。为了启用导航,我设置了

android:focusable="true"

现在,我可以很好地使用 DPAD 在 RecyclerView 内滚动。我的目标是为列表中当前重点项目的突出显示设置动画。但是,我似乎找不到任何表明焦点改变的事件。

我非常感谢一个提示,我的代码如何被告知列表内的焦点发生了变化,编程方式,以及如何确定哪些列表项获得/失去了焦点。

谢谢!

4

1 回答 1

0

最后,事实证明解决方案相当简单。我不知道,为什么它隐藏在我的眼前。我所要做的就是像这样进入view.setOnFocusChangeListener()内部onBindViewHolder

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    ...
    view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean b) {
            highlightEntry(view, b);
        }
    });
    ...
}
于 2021-11-19T07:18:13.813 回答