Как сделать всегда видимыми заголовки строк в RowsFragment

Вот что у меня есть сейчас.

введите здесь описание изображения

Просто мой RowsFragment выглядит так,

public static class SampleFragmentB extends RowsFragment {
        private final ArrayObjectAdapter mRowsAdapter;

        public SampleFragmentB() {
            mRowsAdapter = new ArrayObjectAdapter(new ShadowRowPresenterSelector());

            setAdapter(mRowsAdapter);
            setOnItemViewClickedListener(new OnItemViewClickedListener() {
                @Override
                public void onItemClicked(
                        Presenter.ViewHolder itemViewHolder,
                        Object item,
                        RowPresenter.ViewHolder rowViewHolder,
                        Row row) {
                    Toast.makeText(getActivity(), "Implement click handler", Toast.LENGTH_SHORT)
                            .show();
                }
            });
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            createRows();
            getMainFragmentAdapter().getFragmentHost().notifyDataReady(getMainFragmentAdapter());
        }

        private void createRows() {
                String json = Utils.inputStreamToString(getResources().openRawResource(
                        R.raw.page_row_example));
                CardRow[] rows = new Gson().fromJson(json, CardRow[].class);
                for (CardRow row : rows) {
                    mRowsAdapter.add(createCardRow(row));
                }
        }

        private Row createCardRow(CardRow cardRow) {
            PresenterSelector presenterSelector = new CardPresenterSelector(getActivity());
            ArrayObjectAdapter adapter = new ArrayObjectAdapter(presenterSelector);
            for (Card card : cardRow.getCards()) {
                adapter.add(card);
            }

            HeaderItem headerItem = new HeaderItem(cardRow.getTitle());
            return new CardListRow(headerItem, adapter, cardRow);
        }
    }

Это то, что я точно хочу сделать,

введите здесь описание изображения

Поэтому я хочу сделать всегда видимым заголовок каждой строки, не выбирая и не фокусируясь на RowsFragment. Я использую Leanback v24, чтобы добавить несколько строк в каждый элемент заголовка.


person Pumayk26    schedule 27.06.2017    source источник


Ответы (1)


Вы можете проверить библиотеку Sofa для Android TV, которая расширяет библиотека Leanback, предлагая набор более мощных функций. В BrowseSupportFragment mRowsFragment.setExpand должно быть true. Дополнительная ссылка: как всегда показывать заголовки в RowsFragment

person abielita    schedule 28.06.2017
comment
спасибо за вашу помощь, но мне не разрешено использовать Sofa в этом проекте. Если нет других решений, возможно, мне придется использовать его. Спасибо за ответ. - person Pumayk26; 28.06.2017