Проблема с запросом сосредоточиться на RowsFragment Android библиотеки Leanback?

У меня возникла проблема с фокусировкой Android RowsFragment. Я добавляю два разных типа адаптеров в один и тот же RowsFragment(прикрепленный код ниже), но при нажатии кнопки "вверх" (кнопка "вверх" на пульте телевизора), чтобы сфокусироваться на верхнем ряду, фокус переходит на навигацию по верхней панели.

// Мой пример кода -

MyRowFragment extends RowsFragment
    {
        private SparseArrayObjectAdapter myRowsAdapter;
        @Override
        public void onViewCreated (View view, Bundle savedInstanceState){
        super.onViewCreated(view, savedInstanceState);
        loadDataRows();
    }

    private void loadDataRows() {
// got some logic to download data 
        for (MyDataType data : MyDataTypeList) {
            ArrayObjectAdapter rowAdapter;

            //conditionToCheck is boolean to check some condition
            if (conditionToCheck) {
                rowAdapter =
                        new ArrayObjectAdapter(new MyCustomPresenter(value, value1));
            } else {
                rowAdapter =
                        new ArrayObjectAdapter(MyCustomPresentor1(value, value1));
            }

            rowAdapter.add(data);

            myRowsAdapter.set(rowKey, new ListRow(rowAdapter));

        }
    }
}

И мой файл макета:

<com.github.ksoichiro.android.observablescrollview.ObservableScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="none">

            <FrameLayout
                android:id="@+id/rowsContainer"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
        </LinearLayout>
    </com.github.ksoichiro.android.observablescrollview.ObservableScrollView>

1 ответ

Добавьте фокусируемый к предъявителю карты в MyCustomPresenter() и MyCustomPresenter1().

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
    cardView.setFocusable(true);
    cardView.setFocusableInTouchMode(true);
}
Другие вопросы по тегам