Pertanyaan Widget Aplikasi tidak ditampilkan di laci aplikasi ICS


Adakah yang mengalami widget aplikasi mereka tidak terdaftar di laci aplikasi ICS?

Awalnya saya memulai aplikasi ini untuk Froyo dan di bawah, yang mendukung widget aplikasi dengan baik. Seiring datangnya Gingerbread dan Honeycomb, mereka juga bekerja.

Widget muncul dalam daftar di emulator jika saya membuka aplikasi "Widget Preview", namun ketika Anda baru saja membuka laci itu tidak terdaftar dengan yang lain. Itu muncul di Honeycomb. Saya tidak (dan yang lain juga tidak) melihatnya di Galaxy Nexus saya di mana saja.

Saya sudah mencoba reboot karena saya telah melihat bahwa memecahkan masalah untuk beberapa orang setelah instalasi awal. Saya juga memiliki aktivitas utama dengan action.MAIN / category.LAUNCHER intent filter karena saya memiliki aktivitas aplikasi, ini bukan tipe widget saja.

Saya akan memposting beberapa cuplikan di bawah ini, beri tahu saya jika diperlukan. MinSdkVersion saya adalah pada 7 dan targetSdkVersion pada 15, properti proyek juga memiliki target yang dicek pada 4.0.3. Atribut installLocation diatur ke otomatis.

AndroidManifest.xml:

<receiver android:name=".AppWidget" android:label="@string/one_cell_widget_label">
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.frankcalise.h2droid.FORCE_WIDGET_UPDATE" />
    </intent-filter>
    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/one_cell_widget_settings" />
</receiver>

one_cell_widget_settings.xml:

<appwidget-provider
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/one_cell_widget"
    android:minWidth="@dimen/one_cell_widget"
    android:maxHeight="@dimen/one_cell_widget"
    android:updatePeriodMillis="0" >
</appwidget-provider>

one_cell_widget.xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget_background"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/widget_margin"
    android:background="@drawable/widget_background">
    <TextView
        android:id="@+id/widget_title_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textColor="@android:color/black" />
    <TextView
        android:id="@+id/widget_amount_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/default_widget_amount"
        android:textSize="12sp"
        android:textColor="@color/amount_color" />
    <TextView
        android:id="@+id/widget_percent_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/default_widget_percent" />
</LinearLayout>

dan kemudian jelas saya menerapkan kelas di AppWidget.java

public class AppWidget extends AppWidgetProvider

MEMPERBARUI:

Pesan logcat penting yang saya temukan sebelumnya hari ini yang membantu saya memecahkan masalah:

06-01 14:41:31.606: E/AppsCustomizePagedView(199): Widget ComponentInfo{com.frankcalise.h2droid/com.frankcalise.h2droid.AppWidget} has invalid dimensions (108, 0)

4
2018-05-31 21:10


asal


Jawaban:


Saya menemukan masalahnya. Elemen penyedia appwidget saya memiliki salah ketik di salah satu atribut, seharusnya tertulis "minHeight", bukan "maxHeight".

Apa yang membuat saya menemukan ini adalah menemukan output kesalahan di logcat dari peluncur. Itu disebutkan widget saya memiliki dimensi yang tidak valid (karena itu tidak menambahkannya ke daftar widget). Jadi saya mulai memeriksa semua atribut dimensi yang terkait dengan widget saya.


5
2018-06-01 15:16