Навигация в представлении с помощью RecyclerView - PullRequest
0 голосов
/ 22 мая 2018

У меня есть приложение, поддерживающее как Android TV, так и смартфоны.

В целом навигация по приложению проходит нормально, но у меня есть одна проблема с макетом, как этот

View with Buttons
RecyclerView
View with Buttons

Я хочу перемещаться по этому представлениюс D-pad (или стрелками), но Recycler - своего рода проблема.

Я могу установить фокус на переработчике сверху и снизу, установив

android:nextFocusDown="@+id/recycler"  

и сделав фокусировщик на фокусировку, но теперь яхотите «войти» в переработчик, например, с помощью D-pad OK (или Enter)

как я могу переместить фокус с переработчика на первого потомка переработчика по imeInputType (ok / enter) и сбросить фокус при нажатии(назад / esc) от ребенка обратно к его родительскому переработчику?

1 Ответ

0 голосов
/ 22 мая 2018

Вы добавляете дочерние представления программно, поэтому вам нужно программно установить следующий сфокусированный вид.

Примерно так

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;
    }
});
...