Android-виджеты: в фокусе, при щелчке эффекты для виджетов

Спасибо, что прочитали мой вопрос, пожалуйста, прочитайте его терпеливо. Сценарий немного отличается от обычного приложения для Android.

Я создаю свой собственный лаунчер для Android TV. У меня есть полное разрешение на запуск моего приложения в качестве системного приложения.

У меня есть свой лаунчер, в котором я размещаю виджеты. В Android обычно мы размещаем виджеты, перетаскивая их на главный экран, но в моем случае мне нужно разместить все виджеты, как только запустится лаунчер. Я могу успешно разместить все виджеты. Пользователю не разрешено изменять положение виджетов или удалять какие-либо виджеты. Все виджеты исправлены.

Теперь требование примерно такое,

  1. Для Android TV у меня есть дистанционное управление для доступа ко всем виджетам, приложениям и т. д. Вместо сенсорного экрана у меня есть дистанционное управление для доступа ко всему.

  2. На главном экране/лаунчере, где у меня есть все виджеты, мне нужно реализовать пространственную навигацию. то есть мне нужно перемещаться по всем виджетам с помощью удаленной клавиши влево/вправо/вверх/вниз.

В качестве решения я сделал следующие вещи:

  1. Я обработал onFocusChangeListener для прослушивания события изменения фокуса, а также обработал onClickListener для обработки события onClick.

  2. При смене фокуса и клике я отправляю трансляцию каждому виджету вместе с дополнительными данными, т.е. got_focus, lost_focus или clicked. В каждом виджете у меня есть приемник, который принимает трансляцию, и в зависимости от состояния виджет меняет свое фоновое изображение. Я поместил журнал в каждый из моих приемников. Все приемники получают свои соответствующие широковещательные сообщения, но проблема в том, что поведение при изменении состояния не является согласованным. Иногда виджеты меняют состояния, а иногда нет, даже если они получают широковещательную рассылку.

Итак, я хочу знать, есть ли другой способ сделать это поведение последовательным. Кто-нибудь, кто работал с лаунчером и сталкивался с таким же сценарием, пожалуйста, помогите мне. Я застрял в этой части за последние 3 дня. Есть ли другой способ обновить фоновое изображение виджетов из лаунчера.

Спасибо, что терпеливо прочитали. Любая помощь будет оценена по достоинству.

Спасибо еще раз.


person hp.android    schedule 31.10.2012    source источник


Ответы (2)


Теперь виджет не подходит для ТВ.

Вы можете поместить LinearLayout, содержащий виджет.

Установите linearlayout с помощью focusable.

Запрещен фокус содержимого виджета.

Удаленная клавиша изменяет состояние LinearLayout.

если нажать ок. просто запустите активность виджета.

Но он не может контролировать содержимое виджета (запретить фокус).

person wood    schedule 16.11.2012

Перейдите на сайт developer.android.com, найдите и примените «Ресурс списка состояний» к соответствующим элементам графического интерфейса Android TV.

person Robert    schedule 21.06.2016