2015-11-21 123 views
1

我在Android TV應用程序上工作了很長一段時間,現在我已經在工作中走過了很長時間。我正在嘗試開發像爆米花時間這樣的應用程序,但它適用於Google nexus電視盒。 我陷入困境的問題非常簡單,但即使經過很多努力,我仍然無法找出解決方案。 我從我的數據庫中獲取json數據,其中包含所有電影的詳細信息和鏈接,而且這種工作非常好。 Over all app view在列表中動態添加更多卡行Android TV leanback

現在,這些誰使用的Android電視上的你管的應用程序必須注意到,它是建立在Leanback上,當你在一個listrow向下滾動更多的卡被添加到行,同樣的應用程序所做的JSON電話根據我們滾動的類別獲取更多的數據。(這就是我想要做的)

現在,這是不可能的,如果我請求大數據,它需要很長時間從服務器獲取所有內容,所以我已經設計了一種方法,通過它我可以在滾動上進行json調用,但是我無法在運行時在listrow中顯示它們。

+0

發佈您的適配器代碼。將Json值添加到適配器並將適配器添加到listrow – Dhina

回答

0

我一直在使用的Android電視的Leanback圖書館從過去的7或8個月。我已經開發了我自己的演示者類,通過它可以在滾動上動態加載更多的卡片,但不可能使用Leanback庫,ListAdapter更新單行並移動到下一個類別來更新它的卡片。這在運行時間上花費時間。

我已經使用下面的答案來創建我自己的演示者類。在滾動上實現無限加載時的技巧是你必須創建兩個AysncTasks。

看一看在後34

Lazy download images into gridView

它會一點時間考慮,但你會得到的想法。

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

當然,這可能只適用於您第一次創建用戶界面。未來的時代可能不會這樣做。在我的應用程序,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(); 
} 
+0

不適用於我。仍然獲得IOBE。 –