Концепция навигации в Року - PullRequest
1 голос
/ 13 июня 2019

У меня возникла проблема с экранной навигацией в Roku Brightscript.Пожалуйста, кто-нибудь, помогите мне, как я могу управлять 5-6 экранами в моем проекте Roku.Я хочу перейти от 1 до 2 экрана, а также хочу вернуться с этого экрана.Это серьезная проблема, которая возникла у меня за последние 6 месяцев.Я не могу это сделать.Некоторая помощь с вашей стороны помогает мне понять.

В настоящее время я пробовал, следуя приведенной ниже процедуре

1 - если я хочу перейти на 2 экрана, я сделаю ниже часть

   m.top.AppendChild(m.secondscreen)
   m.secondscreen.setFocus(true)
   m.secondscreen.visible="true"

2 - когда я нажму назад, затем на второй кнопке возврата экрана, я верну значение false, чтобы вернуться к 1-му экрану, и здесь я просто сделаю это

   m.secondscreen.setFocus(false)
   m.secondscreen.visible="false"
   return true

Здесьоно придет на 1-й экран.Так вот так, я пойду на все страницы.Но я знаю, что это не точный процесс в Року.Таким образом, я столкнулся со многими трудностями при выполнении этого. И я не могу перейти с 5 экранов на 1 экран, выполнив описанную выше процедуру. Так что, кто-нибудь, дайте мне понять, если у вас есть пример. Он будет вам благодарен

Ответы [ 4 ]

2 голосов
/ 14 июня 2019

Я предполагаю, что ваш m.secondscreen является компонентом "roSGScreen", и если да, то вы правы, что ошибаетесь.В приложении Roku scenegraph должен быть только один «roSGScreen», созданный когда-либо.

Концепция «экрана» вводит в заблуждение, потому что вы можете создавать множество компонентов, которые можно рассматривать как «экраны», когда они на самом деле являются просто представлениями.Ваша единственная сцена должна управлять активными представлениями (подкомпонентами, а не roSGScreens) и может прикреплять / отсоединять или показывать / скрывать подкомпоненты по мере необходимости в зависимости от действий пользователя.

Технически говоря, я почти уверен, что выхочу управлять 5 видами, а не 5 экранами.

Я предлагаю потратить некоторое время на пример приложения из руководства SDK docs, чтобы узнать об этом подробнее.

0 голосов
/ 26 июля 2019

Я использовал компонент стека представлений, предоставленный Roku на некоторых опубликованных каналах.

Я рекомендую вам использовать его, это облегчит работу с экраном.

Пожалуйста, смотрите Github Образец Документы .

Возможно, на первый взгляд установка может быть болезненной, но определенно, это большемасштабируемость по мере роста приложений.

Чтобы отобразить экран, вы называете его следующим образом:

screenOne = CreateObject("roSGNode", "customScreen")
m.top.ComponentController.CallFunc("show", {
  view: screenOne
})

Чтобы закрыть экран вручную, вам просто нужно изменить свойство «close» наtrue.

screenOne.close = true

Вы можете продолжать вызывать метод show, и он добавит все эти представления в стек.

Вы также получаете некоторые функциональные возможности, позволяя компонентному контроллеру управлять вашим стеком экрана:

currentView - Ссылки на представление, отображаемое в данный момент ViewStack (это представление представляет представление, отображаемое ViewStack.

allowCloseChannelOnLastView - Если установлено значение true, канал закрывается при нажатии кнопки «Назад» или если предыдущее представление установило для поля закрытия представления значение true

allowCloseLastViewOnBack - Если значение равно true, текущее представление закрывается,и пользователь может открыть другое представление с помощью обратного вызова wasClosed нового представления

Обратите внимание, что Если отображается другое представление без использования ViewStack, оно не будетотражено в стеке или может быть доступно по текущей ссылке на источник)

0 голосов
/ 24 июля 2019

Я думал, что другой способ навигации.Просто добавьте все виджеты или компоненты в одну группу и примените концепцию Скрыть / показать в ROKU.Его работа для меня, чтобы изменить экран.ROKU не предоставляет никакой конкретной навигации.

0 голосов
/ 13 июня 2019

Добавьте в код одну вещь:

m.secondscreen.close = true return true

Требуется Roku Navigation для первого закрытия экрана. После закрытия первого экрана откроется второй экран. это определенно работа.

...