Проблема с запросом сосредоточиться на 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);
}