Настройка интерфейсов Android TV с помощью библиотеки поддержки LeanBack

Библиотека поддержки Leanback для проектов Android TV кажется хорошей попыткой стандартизировать работу с ТВ. Однако я считаю это слишком жестким и ограничивает настройку за пределами незначительных, таких как цветовые схемы и т. Д.

Мой вопрос: каков наилучший и наиболее эффективный способ настройки экранов, таких как DetailsFragment, без переписывания ключевых частей платформы Leanback?

Справочная информация

Экран сведений по умолчанию выглядит следующим образом:

Некоторые вещи, которые я хотел бы делать:

  1. Поместите одно или два дополнительных представления под DetailsOverViewRow (изображение, заголовок / описание, кнопки действий), которые показывают дополнительную информацию, уникальную для дизайна нашего приложения (например, панель реакции эмодзи и панель титров фильма - в основном эскизное изображение и текстовое представление фильма с названием создатели)
  2. Правильно обрежьте миниатюру карточки, чтобы полностью уместить ее на экране. Изображение в настоящее время обрезано, в отличие от просмотра карточек на экране браузера, где оно хорошо вписывается в карточное представление. XML-файл макета определяет довольно маленький размер контейнера (фиксированная высота 274dp), и, вероятно, поэтому изображение не обрезано должным образом

Что я пробовал

Расширьте DetailsOverViewRowPresenter, чтобы иметь возможность расширять пользовательский XML-файл, определяющий дополнительные представления. К сожалению, этот класс скрывает свой метод инициализации ключа createRowViewHolder->private initDetailsOverview(ViewHolder vh), поэтому мне пришлось бы продублировать такие скрытые, но все же ключевые методы, что, на мой взгляд, лишает смысла создание подклассов. Есть ли лучший способ, чем воссоздать такой код? ПРИМЕЧАНИЕ: этот подход может быть аналогичен подходу, опубликованному в соответствующем вопросе но OP не стал вдаваться в подробности.


person kip2    schedule 29.03.2016    source источник
comment
для номера 1 я сделал копию Presenter, предоставленную из библиотеки Leanback Android (класс AbstractDetailsDescriptionPresenter), отредактировал некоторые части, включая xml, и я использую свой класс вместо официального из Leanback. но я использую FullWidthDetailsOverviewRowPresenter. это все еще похоже, я думаю   -  person A. N    schedule 17.05.2016
comment
Если вы решили эту проблему, не могли бы вы поделиться своим решением?   -  person khateeb    schedule 24.11.2017
comment
@khateeb, пожалуйста, посмотрите мой ответ ниже   -  person kip2    schedule 24.11.2017


Ответы (1)


В итоге я не реализовал экран с подробностями. Но похоже, что обновленная библиотека Leanback теперь поддерживает некоторый уровень настройки. Хорошей отправной точкой является проект Google-samples Leanback на github. Например: _ 1_ является подклассом DetailsFragment.

Кроме того, в этой средней публикации стоит отметить

person kip2    schedule 24.11.2017
comment
Я просмотрел образец. Он показывает, как изменить внутри презентатора обзора. Я также хотел знать, как модифицировать его вне его. Не могли бы вы ответить на мой вопрос: stackoverflow.com/10/47 - person khateeb; 24.11.2017