appWidget Orientation Code - PullRequest
       6

appWidget Orientation Code

3 голосов
/ 10 января 2010

У меня есть код в виджете приложения, который я хочу запускать, когда ориентация телефона меняется на главном экране, например, когда клавиатура выдвигается. У меня есть изображение, которое я хочу изменить в виде изображения в моем приложении. Я не могу использовать разные макеты, связанные с ориентацией (например, «layout» и «layout-land»), потому что я не знаю имени файла изображения до времени выполнения, он создается во время выполнения. Можно ли в любом случае запускать код для запуска, только если отображается домашний экран, мой appwidget активен, а ориентация только что изменилась?

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

Ryan

Ответы [ 3 ]

3 голосов
/ 22 января 2010

Нет хорошего способа сделать это для изображений, сгенерированных во время выполнения.

Один из подходов состоит в том, чтобы создать обе версии изображения и иметь два ImageViews, которые видны в зависимости от используемого макета / земли макета. (Таким образом, RemoteViews будут обновлять оба ImageView, но будет виден только правильный.)

0 голосов
/ 08 июля 2010

Больше информации на http://groups.google.com/group/android-developers/browse_thread/thread/0eb7c016be05e0b9/d31b312e2fa8530d

В основном обновите виджет из onConfigurationChanged () в Activity и добавьте android: configChanges = "direction" для этого Activity в вашем манифесте. Плохо то, что это не охватывает все случаи использования.

0 голосов
/ 30 июня 2010

Джефф, в чем причина этого ограничения? Я хотел бы иметь возможность использовать образы, сгенерированные во время выполнения, или создавать RemoteView также во время выполнения, а не использовать предварительно скомпилированный XML - это так негибко.

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