2011-12-18 38 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