1

我正在开发一个 Android TV 应用程序已经有一段时间了,而且我在开发它的过程中已经走了很长一段路。我正在尝试开发像爆米花时间这样的应用程序,但它适用于 Google Nexus 电视盒。我陷入的问题非常简单,但即使经过很多努力,我仍然无法找出解决方案。我正在从包含所有电影详细信息和链接的数据库中获取 json 数据,并且效果很好。 在所有应用程序视图

现在,那些在 Android TV 上使用过 you tube 应用程序的人一定已经注意到它是基于leanback 构建的,当您在列表行中向下滚动时,更多的卡片会添加到一行中,同样,该应用程序会根据 json 调用来获取更多数据我们正在滚动的类别。(这就​​是我想要做的)

现在这是不可能的,如果我请求大数据,需要很长时间才能从服务器获取所有内容,所以我设计了一种方法,通过它我可以在滚动时进行 json 调用,但我无法在运行时将它们呈现在列表行中.

4

2 回答 2

1

向演示者添加项目;

CardPresenter channelCardPresenter = new CardPresenter();
ArrayObjectAdapter channelRowAdapter = new ArrayObjectAdapter(channelCardPresenter);
channelRowAdapter.add(new Movie("Movie Title"));
HeaderItem header = new HeaderItem(0, "My Channels");
mRowsAdapter.add(new ListRow(header, channelRowAdapter));

当然,这可能仅适用于您第一次创建 UI。未来的时代可能不会这样做。在我的应用程序https://github.com/Fleker/CumulusTV/blob/master/app/src/main/java/com/felkertech/n/tv/LeanbackFragment.java中,我创建了一个每次都会调用的方法我想做一个完整的应用程序重绘:

public void refreshUI() {
    prepareBackgroundManager();
    setupUIElements();
    loadRows(); //Generate and populate all the rows
    setupEventListeners();
}
于 2015-11-21T22:25:14.167 回答
1

过去 7 或 8 个月以来,我一直在使用 android TV Leanback 库。而且我已经开发了自己的演示者类,您可以通过它在滚动时动态加载更多卡片,但使用 Leanback 库是不可能的,ListAdapter 更新单行,而不是移动到下一个类别来更新它的卡片。这需要运行时间。

我已经使用下面的答案来创建我自己的演示者类。在滚动上实现无限加载的技巧是您必须创建两个 AysncTasks。

看看34号帖子

延迟将图像下载到 gridView

这需要一点时间,但你会明白的。

于 2016-08-01T11:01:16.503 回答