/ / Android: Widżety nie wyświetlają się w szufladzie aplikacji ICS - Android, android-widget, ekran główny

Android: widżety nie wyświetlają się w ICS aplikacji - Android, android-widget, ekran główny

Mam dwa widżety i żaden z nich się nie wyświetliw szufladzie aplikacji. Dziwne jest to, że jeśli usunę jedną z manifestu, to się nie pojawi, ale nie widzę, co robię źle, z wszystkich innych pytań, które przeszukałem, wygląda dobrze. Aplikacja nie jest instalowana karta SD.

Ktoś ma jakieś pomysły?

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>

Odpowiedzi:

2 dla odpowiedzi № 1

Jeśli Twoja aplikacja to tylko appwidget, bez żadnych działań poza konfiguracją, potrzebujesz fikcyjnej głównej aktywności, aby aplikacja pojawiła się w szufladzie.

Zobacz oryginalny numer w Google Code: http://code.google.com/p/android/issues/detail?id=24208, ta odpowiedź: Android 4.0: widżety nie pojawiają się? a także ten interesujący wątek w grupie Android Devs Google: https://groups.google.com/forum/?fromgroups#!topic/android-developers/bvlk3EOV6Xk (chodzi o Honeycomb, ale dotyczy wersji Androida 3.x i nowszych)


4 dla odpowiedzi nr 2

Dodaj atrybuty "minHeight" i "minWidth" do swoich elementów appwidget-provider dla każdej aplikacji i sprawdź, czy to dla Ciebie działa.

Jeśli zaznaczysz logcat podczas uruchamiania go w emulatorze, zwróć uwagę na to, że program uruchamiający wyświetla komunikat o nieprawidłowych wymiarach, a nazwa tego widgetu zostanie dołączona do tego wiersza.

Właśnie miałem ten problem i tak go rozwiązałem(chociaż miałem jedną minutę i na max pod warunkiem w wypadku). Komunikat logcat powiedział, że mam wymiar (108, 0). To doprowadziło mnie do spojrzenia na wszystkie moje wymiary, ponieważ krzyczało na mnie, że wysokość wynosi 0.

To był mój post: Widżet aplikacji nie wyświetla się w szufladzie aplikacji ICS