2011-12-18 14 views
3

Я создал файл XML для AppWidget, как показано ниже.Android AppWidget No More Room при использовании ресурса dimen

XML/appwidget_4x1.xml

<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="@dimen/AppWidget_4Cell" 
    android:minHeight="@dimen/AppWidget_1Cell" 
    android:updatePeriodMillis="0" 
    android:previewImage="@drawable/appwidget_4x1_preview" 
    android:initialLayout="@layout/appwidget_4x1_loading" 
    android:resizeMode="horizontal" 
    android:minResizeWidth="@dimen/AppWidget_3Cell" /> 

Проблема заключается в Android 1.6 он, видимо, не нравится мне, используя @dimen заявления для MinWidth и MinHeight. Когда это происходит, и пользователь бросает AppWidget на экран, он говорит: «Больше нет места на этом главном экране». Если я использую размеры явно, он снова начнет работать.

Рез/значения/dimens.xml (1,6 - 3,2)

<dimen name="AppWidget_1Cell">72dp</dimen> 
<dimen name="AppWidget_4Cell">294dp</dimen> 

Рез/значения-v14/dimens.xml (4.0+)

<dimen name="AppWidget_1Cell">40dp</dimen> 
<dimen name="AppWidget_4Cell">250dp</dimen> 

Является ли это ошибка, и если так что это за дело? Я сделал это таким образом, чтобы следовать рекомендациям для новых макетов виджета Ice Cream Sandwich.

+0

кажется ошибка в 2.1 и более низких версиях. Найдены в LogCat AppWidgetProviderInfo.minWidth = 8324608 и minHeight = 18499130 в моем приложении app 4x3 –

ответ

3

Я просто пробовал, и это происходит и со мной с Android 1.6. Быстрое решение состоит в том, чтобы создавать разные папки xml (один для Android 1.6 и один для других версий). Таким образом, вы могли бы:

XML-v4 (для Android 1.6), содержащие размеры, как числовые значения
XML-v5 (для остальных), содержащий размеры, как @ DIMEN/..

или, вы могли бы:

XML (для Android 1.6 - 3.2), содержащих размеров, как числовые значения
XML-v14 (для Android 4), содержащей новые размеры

Что плохого в том, что вы должны дублировать appwidget провайдеры XML-файлы, но, по крайней мере, это работает.

Mmm..I'm думает о снижении поддержки для Android 1.6 ..... (сейчас это на 1.3% ...).

Приветствия, Yuvi

http://www.droidahead.com

+0

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

+0

Эта проблема существует даже на 2.1-update1. Я не думаю, что это проблема только 1.6. – dpcbabu

+0

@dpcbabu Да, это правда. Итак, второе решение работает лучше (например, используйте xml для Android 1.6-3.2 и xml-v14 для Android 4) – YuviDroid

 Смежные вопросы

  • Нет связанных вопросов^_^