如何在 RowsFragment 中使行的标题始终可见
Posted
技术标签:
【中文标题】如何在 RowsFragment 中使行的标题始终可见【英文标题】:How to make always visible headers of rows in 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 在每个标题项中添加多行。
【问题讨论】:
【参考方案1】:您可能需要查看适用于 android TV 的 Sofa 库,该库通过提供一组更强大的功能扩展了 Leanback library 功能。在BrowseSupportFragment
中,mRowsFragment.setExpand
应该是true
。补充参考:how to always show headers in RowsFragment
【讨论】:
感谢您的帮助,但在此项目中不允许使用沙发。如果没有其他解决方案,我可能不得不使用它..感谢您的回答。以上是关于如何在 RowsFragment 中使行的标题始终可见的主要内容,如果未能解决你的问题,请参考以下文章
使行扩展元素,即 extjs 网格和图表在窗口调整大小时调整大小
在 BrowseFragment 之外重用 AndroidTV RowsFragment