【问题标题】:How to make always visible headers of rows in RowsFragment如何在 RowsFragment 中使行的标题始终可见
【发布时间】:2017-11-30 18:01:44
【问题描述】:

这是我现在拥有的。

只是我的 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 在每个标题项中添加多行。

【问题讨论】:

    标签: android-fragments android-tv leanback


    【解决方案1】:

    您可能需要查看适用于 Android TV 的 Sofa 库,该库通过提供一组更强大的功能扩展了 Leanback library 功能。在BrowseSupportFragment 中,mRowsFragment.setExpand 应该是true。补充参考:how to always show headers in RowsFragment

    【讨论】:

    • 感谢您的帮助,但在此项目中不允许使用沙发。如果没有其他解决方案,我可能不得不使用它..感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    相关资源
    最近更新 更多