Виджет главного экрана с динамическим размером - PullRequest
2 голосов
/ 06 июля 2011

Можно ли динамически создавать виджет домашнего экрана (то есть без определения фиксированного макета в ресурсах проекта)?

В настоящее время у меня есть 4 макета - но для охвата всех вариантов мне потребуется как минимум 15разные макеты с разной шириной / высотой, которые заполняют селектор виджетов для пользователя.

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

1 Ответ

2 голосов
/ 06 июля 2011

Вы не можете изменить размер виджета, если вы не находитесь на планшете под управлением Android 3.1 (Honeycomb). В противном случае вы должны указать все необходимые размеры в виде одного виджета.

Относительно всех различных макетов и заполненного селектора виджетов. Вам нужно добавить только одну запись для каждого размера. После того, как пользователь нажимает на одну из этих записей, Вы можете реализовать конфигурацию / выбрать действие (например, как вы можете видеть в смысле, или приложение Новости и Погода от Google, где вы выбираете макет с погодой, новостями или и тем, и другим). Пользователь может выбрать макет для виджета. Вы просто должны запомнить этот выбор и установить правильный макет при обновлении виджета. Вы можете изменить расположение виджетов внутри конструктора RemoveViews, который у вас есть внутри функции обновления виджета:

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
...