2011-12-18 51 views
3

我爲AppWidget創建了一個XML文件,如下所示。Android AppWidget使用維度資源時沒有空間

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的它顯然使用了minWidth和在了minHeight陳述@dimen不喜歡我。發生這種情況時,用戶在屏幕上放下一個AppWidget,它說:「在這個主屏幕上沒有更多空間。」如果我明確使用這些尺寸,它會再次開始工作。

RES /值/ dimens.xml(1.6 - 3.2)

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

RES /值-V14/dimens.xml(4.0+)

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

這是如果一個錯誤和那麼這有什麼工作呢?我這樣做是爲了遵循Ice Cream Sandwich的新窗口小部件佈局尺寸的建議。

+0

這似乎是一個錯誤在2.1和更低的版本。在我的4x3 appwidget中找到LogCat AppWidgetProviderInfo.minWidth = 8324608和minHeight = 18499130 – 2013-07-01 12:26:52

回答

3

我剛剛嘗試過,而且Android 1.6也發生在我身上。 快速修復是創建不同的xml文件夾(一個用於Android 1.6,另一個用於其他版本)。所以,你可以有:

XML-V4(爲Android 1.6),包含尺寸數值
XML-V5(爲休息),包含尺寸@捫/ ..

,或者你可以有:

XML(爲Android 1.6 - 3.2),含有尺寸數值
XML-V14(Android設備4),含新尺寸

什麼是壞的是,你必須要複製您的appwidget提供商的XML文件,但至少它的工作原理。

嗯..我正在考慮放棄支持Android 1.6 .....(現在它在1.3%...)。

乾杯, Yuvi

http://www.droidahead.com

+0

這就是我在我的項目中所做的解決方法。這是一個解決方案,但我唯一的區別是尺寸。這很煩人。 – 2011-12-26 23:55:13

+0

即使在2.1-update1上也存在此問題。我不認爲這是一個1.6的問題。 – dpcbabu 2012-02-06 17:08:23

+0

@dpcbabu是的,這是真的。因此,第二個解決方案效果更好(即使用xml的Android 1.6-3.2和xml-v14的Android 4) – YuviDroid 2012-03-01 20:11:04