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

时间:2012-02-10 18:15:39

标签: android android-widget homescreen

我有两个小部件,它们都不会出现在应用程序抽屉中。奇怪的是,如果我从清单中删除一个它也不会出现,但我看不出我做错了什么。从我搜索的所有其他问题来看,它看起来是对的。该应用程序未安装在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 个答案:

答案 0 :(得分:4)

将“minHeight”和“minWidth”属性添加到每个appwidget的appwidget-provider元素中,看看这是否适合您。

如果在模拟器中运行logcat时检查logcat,您应该注意到启动器输出有关无效维度的消息,并且小部件的名称将附加到此行。

我刚刚遇到这个问题,这就是我解决它的方法(尽管事故中我提供了一分钟和最大值)。 logcat消息说我的维度为(108,0)。这导致我查看我的所有尺寸,因为它因为高度为0而对我大喊大叫。

这是我的帖子: App Widget not displaying in ICS app drawer

答案 1 :(得分:2)

如果您的应用只是一个appwidget,除了配置之外没有任何活动,您需要一个虚拟主活动来使您的appwidget出现在抽屉中。

请参阅Google代码中的原始问题:http://code.google.com/p/android/issues/detail?id=24208,此答案:Android 4.0: widgets not appearing?以及Android Devs Google Group中的这个有趣话题:https://groups.google.com/forum/?fromgroups#!topic/android-developers/bvlk3EOV6Xk(它与Honeycomb有关,但适用于Android版本3.x及更高版本)

相关问题