Как изменить размер виджета после его выбора из меню виджетов - PullRequest
2 голосов
/ 17 июня 2010

Я создаю виджет и хочу, чтобы пользователь мог выбрать размер виджета в меню во время действия по настройке. Моя проблема заключается в том, что в метаданных xml метаданных appwidget-провайдера размер блока уже задан до того, как действие конфигурации уже введено. Мне нужно иметь возможность сбросить информацию о виджете, который содержит размер блока (minHeight, minWidth), без необходимости добавлять отдельные виджеты разных размеров. Есть идеи?

1 Ответ

4 голосов
/ 07 января 2011

Вы не можете сделать это. Это ограничение Android. Создайте несколько виджетов разных размеров, назовите их как «YourWidget (small)», «YourWidget (large)» и т. Д. Или «YourWidget 1x1» и «YourWidget 2x1». Вам понадобится несколько почти идентичных appwidget-провайдеров xml ...

Поскольку вам также понадобятся почти идентичные классы провайдера и конфигурации, определите базовые классы со всем необходимым кодом, а затем наследуйте от них, что-то вроде этого:

открытый класс WidgetProvider2x1 extends WidgetProvider { @Override int getWidgetStyle () { return WidgetProvider.WIDGET_STYLE_2x1; }}

вызовите getWidgetStyle () в базовом классе, когда вам нужно узнать размер вашего виджета.

...