Динамическое добавление дополнительных карточек в список Row android TV leanback

Я работаю над приложением для Android TV уже довольно давно, и я далеко продвинулся, работая над ним. Я пытаюсь разработать приложение, такое как время попкорна, но оно предназначено для телевизионной приставки Google Nexus. Проблема, в которой я застрял, очень проста, но даже после больших усилий я все еще не могу найти решение. Я извлекаю данные json из своей базы данных, в которой есть все сведения о фильмах и ссылки, и это работает отлично. По всему представлению приложения

Теперь те, кто использовал приложение you tube на Android TV, должно быть, заметили, что оно было построено на основе наклона назад, и когда вы прокручиваете список вниз, в строку добавляется больше карточек, и аналогичным образом приложение выполняет вызовы json для получения дополнительных данных в соответствии с категория, в которой мы прокручиваем. (это то, что я хочу сделать)

Прямо сейчас это невозможно, если я запрашиваю большие данные, требуется много времени, чтобы получить все с сервера, поэтому я разработал способ, с помощью которого я могу выполнять вызовы json при прокрутке, но я не могу представить их в списке во время выполнения .


person Wasti    schedule 21.11.2015    source источник
comment
Напишите код адаптера.! где вы добавляете значения json в адаптер и адаптер в список   -  person Dhinakaran Thennarasu    schedule 25.11.2015


Ответы (2)


Чтобы добавить элементы в презентер;

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();
}
person Nick Felker    schedule 21.11.2015

Я работаю с библиотекой Android TV Leanback последние 7 или 8 месяцев. И я разработал свой собственный класс презентаторов, с помощью которого вы можете динамически загружать больше карточек при прокрутке, но это невозможно с помощью библиотеки Leanback, ListAdapter обновляет одну строку, а затем переходит к следующей категории, чтобы обновить свои карточки. которые занимают время во время выполнения.

Я использовал приведенный ниже ответ, чтобы создать свой собственный класс докладчика. Хитрость при реализации бесконечной загрузки при прокрутке заключается в том, что вам нужно создать два AysncTasks.

Смотри пост 34

Отложенная загрузка изображений в gridView

это займет немного времени, но вы получите идею.

person Wasti    schedule 01.08.2016