Android TV.向VerticalGridFragment添加自定义视图 [英] Android TV. Adding custom views to VerticalGridFragment
问题描述
我正在构建一个Android TV应用,并想向VerticalGridFragment添加一些视图.那有可能吗?
I am building an Android TV app and want to add some views to VerticalGridFragment. Is that possible and how?
我正在使用leanback库版本25.0.0.谢谢您的回答.
I am using leanback library version 25.0.0. Thank you for all the answers.
推荐答案
leanback-showcase leanback团队提供的示例很好地说明了如何执行此操作.我强烈建议您克隆该仓库并在该项目中试用.
The leanback-showcase example provided by the leanback team has a great example on how to do this. I highly recommend you clone that repo and play around in that project.
您基本上需要使用 Presenter
初始化 Adapter
,该演示者知道如何呈现要在列表中显示的视图. ="nofollow noreferrer">此类在这里有一个确切的示例,确切说明了您要查找的内容.
You'll basically want to initialize an Adapter
with a Presenter
that knows how to present the views you'd like to display in your list. This class right here has a specific example of exactly what you're looking for.
在此示例中,他们使用 PresenterSelector
,但是如果您的列表是同质的(仅由一个模型支持),则可以将单个 Presenter
直接传递到 Adapter
-类似于 Presenter
In the example they use a PresenterSelector
, but if your list is homogenous (backed by only one model), then you can pass in a single Presenter
directly into the Adapter
- like the Presenter
here.
在代码中-首先设置网格演示器
In code - first setup your grid presenter
VerticalGridPresenter gridPresenter = new VerticalGridPresenter(ZOOM_FACTOR);
gridPresenter.setNumberOfColumns(COLUMNS);
setGridPresenter(gridPresenter);
然后在 VerticalGridFragment
PresenterSelector cardPresenterSelector = new CardPresenterSelector(getActivity());
mAdapter = new ArrayObjectAdapter(cardPresenterSelector);
setAdapter(mAdapter);
然后将模型添加到您的 Adapter
Then add models to your Adapter
private void createRows() {
String json = Utils.inputStreamToString(getResources()
.openRawResource(R.raw.grid_example));
CardRow row = new Gson().fromJson(json, CardRow.class);
mAdapter.addAll(0, row.getCards());
}
这篇关于Android TV.向VerticalGridFragment添加自定义视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!