Какие виды я могу использовать в appWidget? - PullRequest
3 голосов
/ 10 января 2010

Может кто-нибудь сказать мне, какие виды я могу использовать в виджете приложения?

Спасибо!

Ответы [ 3 ]

5 голосов
/ 18 апреля 2013

в соответствии с официальным Android API :

Объект RemoteViews (и, следовательно, виджет приложения) может поддерживать следующие классы макета:

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • GridLayout

И следующие классы виджетов:

  • AnalogClock
  • Кнопка
  • Хронометр
  • ImageButton
  • ImageView
  • ProgressBar
  • TextView
  • ViewFlipper
  • ListView
  • GridView
  • StackView
  • AdapterViewFlipper

Потомки этих классов не поддерживаются.

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

Также начиная с android 3.0 поддерживаются следующие виды:

  • ListView - представление, отображающее элементы в вертикально прокручивающемся списке. Пример см. В виджете приложения Gmail.
  • GridView - представление, отображающее элементы в двумерной сетке прокрутки. Пример см. В виджете приложения «Закладки».
  • StackView - вид с накоплением карт (вроде как rolodex), где пользователь может перевернуть переднюю карту вверх / вниз, чтобы увидеть предыдущую / следующую карту, соответственно. Примеры включают в себя виджеты приложений YouTube и Книги.
  • AdapterViewFlipper - простой ViewAnimator с поддержкой адаптера, который анимирует между двумя или более представлениями. Одновременно показан только один ребенок.
3 голосов
/ 10 января 2010

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

0 голосов
/ 02 марта 2010

Этот список, предоставленный Кристофером, технически правильный, но он не совсем полный. Хотя эти макеты и представления доступны, многие (большинство?) Методов представления не могут быть вызваны. Например, если вы попытаетесь программно изменить цвет фона одного из поддерживаемых виджетов (TextView), вы получите ошибку времени выполнения:

WARN / AppWidgetHostView (606): android.widget.RemoteViews $ ActionException: view: android.widget.TextView не может использовать метод с RemoteViews: setBackgroundColor (int)

Мне еще предстоит увидеть окончательный список того, что поддерживается и не поддерживается. В списке android-dev было несколько тем ( one , two ) по этой теме, но не намного. обходные пути не так хороши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...