2016-11-23 4 views

ответ

0

Существует несколько способов сделать это, но я думаю, что короткий ответ - это то, что вы делаете, это должно быть обычным явлением. До сих пор leanback - единственная инфраструктура, предлагаемая Google для любых специфических для телевидения компонентов, и эта инфраструктура предоставляет только левый навигационный ящик.

Я могу предложить вам одно решение, если вы используете leanback. Вы можете использовать BrowseFragment с пользовательским TitleView, который имеет вкладки и отслеживает фокус вкладок внутри. Пока ваш пользовательский просмотр реализует TitleViewAdapter.Provider, вы можете использовать его с BrowseFragment как TitleView. Преимущество этого заключается в том, что вы можете автоматически его оживить и выйти из верхней части с небольшой дополнительной работой.

Что касается пользовательского вида, вы можете указать focusRight и focusLeft на каждой вкладке и есть слушатель onFocus или onClick поменяться из фрагментов в BrowseFragment. This class in leanback показывает, как обменивать фрагменты в BrowseFragment (в частности, PageRowFragmentFactory).

Я бы очень рекомендовал вам клонировать leanback showcase app, что команда Android собрала и поиграла в этом.

Для специфики настройки TitleView, это будет выглядеть, как показано ниже:


Создайте свой собственный вид

class YourTitleView extends RelativeLayout implements TitleViewAdapter.Provider { 
    ... do custom view setup/logic here ... 
} 

Создайте файл XML с именем lb_browse_title.xml. Это переопределяет макет, который они используют для создания TitleView.

Поместите свой заголовок в этот файл lb_browse_title.xml и убедитесь, что он имеет идентификатор @+id/browse_title_group. Это настолько скудный знает, чтобы захватить ваш заголовок.

<com.your.android.app.views.YourTitleView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/browse_title_group" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="?attr/browseTitleViewStyle" /> 

Затем создать фрагмент, который расширяет BrowseFragment и он должен автоматически применить вид заголовка. Пожалуйста, обратитесь к приложению leanback-showcase, чтобы получить и запустить BrowseFragment.

+0

Не могли бы вы предоставить полный код здесь? –

Смежные вопросы