Android:ICS应用程序抽屉中未显示小部件

5

我有两个小部件,但它们都没有出现在应用程序抽屉中。奇怪的是,如果我从清单中删除一个,它仍然不会显示出来,但我看不出我做错了什么。根据我搜索到的所有其他问题,它看起来都是对的。该应用程序未安装在SD卡上。

有人有任何想法吗?

AndroidManifest.xml

<receiver
        android:name=".appwidgets.WidgetLarge"
        android:label="@string/Widget_large"
        android:icon="@drawable/icon" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.groggs.action.CACHE_UPDATE_FINISHED" />
        </intent-filter>
        <intent-filter>
            <action android:name="WIDGET_UPDATE" />
            <data android:scheme="content" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_large_info" />
    </receiver>

    <receiver
        android:name=".appwidgets.WidgetSmall"
        android:label="@string/Widget_small"
        android:icon="@drawable/icon" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.groggs.action.CACHE_UPDATE_FINISHED" />
        </intent-filter>
        <intent-filter>
            <action android:name="WIDGET_UPDATE" />

            <data android:scheme="content" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_small_info" />
    </receiver>

widget_large_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:maxWidth="450dp"
    android:maxHeight="352dp" 
    android:updatePeriodMillis="0"
    android:initialLayout="@layout/widget_layout_large"
    android:configure="com.groggs.appwidgets.config.HubQuickViewWidgetConfig" >
</appwidget-provider>

widget_small_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:maxWidth="450dp"
    android:maxHeight="82dp" 
    android:updatePeriodMillis="0"
    android:initialLayout="@layout/widget_layout_small"
    android:configure="com.groggs.appwidgets.config.HubQuickViewWidgetConfig" >
</appwidget-provider>

2
我注意到当我安装新的应用程序时,它们的小部件有时不会出现在小部件区域中,直到我重新启动手机。这不是官方的4.0.3版本,所以我一直认为这是我的版本出了问题,但也许你也遇到了同样的问题? - Kaediil
1
我也遇到了同样的问题。似乎它被缓存了一些东西... - Ran
不幸的是,这并没有解决问题。 - FuegoFingers
很令人沮丧,我也遇到了同样的问题。重启并没有解决问题。你的小部件在Honeycomb及以下版本中是可用的,对吗? - esilac
2个回答

4
为每个小部件的appwidget-provider元素添加“minHeight”和“minWidth”属性,看看是否能解决问题。
如果在模拟器中运行时检查logcat,您应该注意到启动器输出有关无效尺寸和附加到此行的小部件名称的消息。
我刚刚遇到了这个问题,这是我解决它的方法(尽管我偶然提供了一个最小值和一个最大值)。 logcat消息说我的尺寸为(108, 0)。这导致我查看了所有我的尺寸,因为它在嘲笑我高度为0。
这是我的帖子: App Widget not displaying in ICS app drawer

2
如果您的应用程序只是一个小部件,除了配置活动之外没有其他活动,那么您需要一个虚拟主活动来使您的小部件显示在抽屉中。
请参见Google Code上的原始问题:http://code.google.com/p/android/issues/detail?id=24208,此答案:Android 4.0:小部件不显示?以及Android Devs Google Group中的这个有趣的线程:https://groups.google.com/forum/?fromgroups#!topic/android-developers/bvlk3EOV6Xk(它是关于Honeycomb的,但适用于Android版本3.x及更高版本)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接