-1

我的应用程序同时支持 Android TV 和智能手机

一般来说,通过应用程序导航很好,但我对这样的布局有一个问题

View with Buttons
RecyclerView
View with Buttons

我想用 D-pad(或箭头)浏览这个视图,但 Recycler 有点问题。

我可以通过设置从上视图和下视图将焦点设置在回收器上

android:nextFocusDown="@+id/recycler"  

并使回收器可聚焦,但现在我想要“进入”回收器,例如使用 D-pad OK(或 Enter)

如何在 imeInputType (ok/enter) 上将焦点从回收器移动到回收器的第一个子级,并将焦点从子级单击 (back/esc) 重新设置回其父级回收器?

4

1 回答 1

1

您正在以编程方式添加子视图,因此您需要以编程方式设置下一个焦点视图。

像这样的东西

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {

            View child = mRecyclerView.getLayoutManager().getChildAt(0);
            child.setFocusable(true);
            child.setFocusableInTouchMode(true);
            child.requestFocus();

            // to check current focused view
            // View focused = getActivity().getCurrentFocus();

            return true;
        }
        return false;
    }
});
于 2018-05-22T14:01:54.393 回答