我正在开发一款Android TV应用程序已经有一段时间了,而且我在使用它时已经走了很远。我正在尝试开发像爆米花时间的应用程序,但它适用于Google nexus电视盒。 我陷入困境的问题非常简单,但即使付出了很多努力,我仍然无法找到解决方案。 我从我的数据库中获取json数据,其中包含所有电影的详细信息和链接,这非常合适。 Over all app view
现在那些在Android TV上使用过你的电子管应用程序的人一定注意到它是在leanback上构建的,当你在listrow中向下滚动时,更多的卡被添加到一行中,同样应用程序让json调用以获取更多根据我们滚动的类别的数据。(这就是我想要做的事情)
现在这是不可能的,如果我请求大数据需要很长时间才能从服务器获取所有内容,所以我设计了一种方法,通过它我可以在滚动时调用json,但是我无法将它们呈现在listrow在运行时。
答案 0 :(得分: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();
}
答案 1 :(得分:0)
我过去7或8个月一直在使用android TV Leanback库。我已经开发了自己的演示者类,通过它可以在滚动时动态加载更多卡片,但是使用Leanback库不可能,ListAdapter更新了一行,而不是移动到下一个类别来更新它的卡片。这需要花时间在运行时间。
我使用下面的答案来创建我自己的演示者类。在滚动上实现无限加载时的技巧是你必须创建两个AysncTasks。
看一下第34页
Lazy download images into gridView
它会花一点时间,但你会得到这个想法。