在列表中动态添加更多卡片Row安卓电视向后倾斜



我在安卓电视应用程序上工作了很长一段时间,在这方面我已经取得了长足的进步。我正在尝试开发一个像爆米花时间这样的应用程序,但它是为谷歌nexus电视盒子准备的。我遇到的问题很简单,但即使付出了很多努力,我仍然无法找到解决方案。我正在从我的数据库中获取json数据,该数据库包含所有电影的详细信息和链接,这非常好。全面应用程序视图

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

现在这是不可能的,如果我请求大数据,从服务器上获取所有数据需要很长时间,所以我设计了一种方法,可以在滚动时进行json调用,但无法在运行时将其显示在列表行中。

向演示者添加项目;

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();
}

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

我用下面的答案创建了自己的演示者类。实现滚动无休止加载的诀窍是,您必须创建两个AysncTask。

看看34后

懒惰地将图像下载到网格查看

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

最新更新