Как изменить размер виджета после его выбора в меню виджетов

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


person Brian    schedule 17.06.2010    source источник


Ответы (1)


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

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

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

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

person haimg    schedule 06.01.2011