Как сделать боковое меню, используя фрагмент просмотра, например netflix, в Android TV?

Прикрепленный скриншот приложения netflix с левым боковым менюЯ могу разработать боковое меню с настроенный значок и заголовок в нем. Я хочу, чтобы когда фокус переместился на фрагмент заголовка, он должен расширяться поверх фрагмента строки, то есть не сворачивая фрагмент строки, как это делают Netflix и hotstar. Как я могу достичь этого?


person vijay chauhan    schedule 15.01.2020    source источник
comment
Поделитесь скриншотом бокового меню?   -  person Dasser Basyouni    schedule 15.01.2020
comment
Привет, дассер, я отредактировал свой вопрос и добавил скриншот для справки.   -  person vijay chauhan    schedule 22.01.2020
comment
Привет, ты смог найти решение?   -  person Abhishek Sharma    schedule 23.06.2020


Ответы (1)


к сожалению, HeaderSupportFragment, используемый в BrowseSupportFragment, недостаточно настраивается для достижения такого дизайна. Leanback отлично подходит для быстрого и простого создания мультимедийного браузера, но когда дело доходит до «сложного» дизайна, проще использовать пользовательский компонент.

Основное отличие здесь также заключается в том, что в левом меню BrowseSupportFragment отображается имя заголовка каждой строки, отображаемое на экране (поэтому оно называется HeaderSupportFragment). Здесь вы хотите показать различные записи, такие как поиск, дом, настройки и т. д.

Чтобы создать такое представление, я бы предложил создать собственное представление и использовать базовый файл Fragment. Я следовал этому руководству, которое может быть полезно для обработки анимации открытия/закрытия меню (я смешал его с ConstraintLayout, чтобы упростить анимацию, и я сделал так, чтобы меню перекрывало остальную часть экрана, а не перемещало все).

См. руководство: https://medium.com/building-for-android-tv/building-for-android-tv-episode-3-381e041dfec7

person Sofiane Hassaini    schedule 31.01.2020
comment
Можете ли вы дать представление о том, как вы построили анимацию, чтобы она перекрывала остальную часть экрана, а не перемещала все? Спасибо - person blueware; 09.06.2020
comment
@blueware использует Activity/Fragment, чтобы обернуть RowSupportFragment - person Thuan Tang; 28.07.2020
comment
@Sofiane Hassaini Средняя ссылка сейчас недействительна. Если у вас есть примеры проектов, поделитесь ссылкой на GitHub. - person Md Imran Choudhury; 06.12.2020
comment
@blueware с помощью ConstraintLayout, если вы дадите левому представлению (то есть меню) ограничение на его начало, но ничего на его конец, и просто обновите ширину меню, когда вы хотите его открыть, и оно будет перекрывать остальную часть экран вместо перемещения вида вправо. Я настоятельно рекомендую протестировать его с двумя простыми представлениями, прежде чем пытаться реализовать меню, строки и т. д. - person Sofiane Hassaini; 07.12.2020
comment
@MdImranChoudhury, к сожалению, у меня нет проекта с открытым исходным кодом, которым я мог бы поделиться :( Я мог бы потратить время, чтобы написать краткое руководство по этой теме и поделиться с вами, если вам интересно - person Sofiane Hassaini; 07.12.2020
comment
Если возможно, поделитесь, это будет очень полезно для нас. - person Md Imran Choudhury; 07.12.2020