Прикрепленный скриншот приложения netflix с левым боковым менюЯ могу разработать боковое меню с настроенный значок и заголовок в нем. Я хочу, чтобы когда фокус переместился на фрагмент заголовка, он должен расширяться поверх фрагмента строки, то есть не сворачивая фрагмент строки, как это делают Netflix и hotstar. Как я могу достичь этого?
Как сделать боковое меню, используя фрагмент просмотра, например netflix, в Android TV?
Ответы (1)
к сожалению, HeaderSupportFragment
, используемый в BrowseSupportFragment
, недостаточно настраивается для достижения такого дизайна. Leanback
отлично подходит для быстрого и простого создания мультимедийного браузера, но когда дело доходит до «сложного» дизайна, проще использовать пользовательский компонент.
Основное отличие здесь также заключается в том, что в левом меню BrowseSupportFragment
отображается имя заголовка каждой строки, отображаемое на экране (поэтому оно называется HeaderSupportFragment
). Здесь вы хотите показать различные записи, такие как поиск, дом, настройки и т. д.
Чтобы создать такое представление, я бы предложил создать собственное представление и использовать базовый файл Fragment
. Я следовал этому руководству, которое может быть полезно для обработки анимации открытия/закрытия меню (я смешал его с ConstraintLayout
, чтобы упростить анимацию, и я сделал так, чтобы меню перекрывало остальную часть экрана, а не перемещало все).
См. руководство: https://medium.com/building-for-android-tv/building-for-android-tv-episode-3-381e041dfec7
Activity/Fragment
, чтобы обернуть RowSupportFragment
- person Thuan Tang; 28.07.2020
ConstraintLayout
, если вы дадите левому представлению (то есть меню) ограничение на его начало, но ничего на его конец, и просто обновите ширину меню, когда вы хотите его открыть, и оно будет перекрывать остальную часть экран вместо перемещения вида вправо. Я настоятельно рекомендую протестировать его с двумя простыми представлениями, прежде чем пытаться реализовать меню, строки и т. д.
- person Sofiane Hassaini; 07.12.2020