Android 小部件未在屏幕上显示

Posted

技术标签:

【中文标题】Android 小部件未在屏幕上显示【英文标题】:Android widgets not showing on screen 【发布时间】:2021-10-30 04:17:33 【问题描述】:

我正在尝试制作一个简单的widget,但是当我想把它放在屏幕上时它就消失了。 我在 Api 上试过这个:23,26 和 30,结果都是一样的。

Manifest.xml

<receiver android:name=".mAppWidgetProvider">

        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
        </intent-filter>

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

    </receiver>

widget_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.app24.test.mAppWidgetProvider"
android:initialLayout="@layout/my_widget"
android:minWidth="250dp"
android:minHeight="70dp"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="10000"
android:widgetCategory="home_screen">
</appwidget-provider>

mAppWidgetProvider

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;

public class mAppWidgetProvider extends AppWidgetProvider 


my_widget(布局)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="horizontal"
android:background="@color/white"
android:padding="8dp">

<TextView
    android:text="Hello world"
    android:textSize="24sp"
    android:layout_weight="1"
    android:gravity="center"
    android:layout_
    android:layout_/>

<Button
    android:text="Click me!"
    android:layout_weight="1"
    android:layout_
    android:layout_/>

<Button
    android:text="Click me!"
    android:layout_weight="1"
    android:layout_
    android:layout_/>

</LinearLayout>

我已经尝试了其他解决方案,但没有任何结果。

【问题讨论】:

【参考方案1】:

查看 logcat 并查找一些 Exception。应用程序小部件在没有任何对话框的情况下“无声地”崩溃,只是没有出现。但是您应该能够在日志中找到问题的原因

在您的代码中,我看到一行错误:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    android:configure="com.app24.test.mAppWidgetProvider"
    ...

android:configure should point on some Activity,它将在您的小部件添加到主屏幕时启动。您的行错误地指向您的自定义AppWidgetProvider,这不是Acticity - 系统可能会尝试以Activity 启动此类,或者可能会检查instanceof,并且由于此类不是Activity,因此会发生崩溃.尝试删除此行以开始(或指向正确的类)

【讨论】:

我删除了那条线,终于成功了!,非常感谢...

以上是关于Android 小部件未在屏幕上显示的主要内容,如果未能解决你的问题,请参考以下文章

导航抽屉未在颤动中从 APPBar 小部件打开

如何在屏幕底部显示小部件android

Android主屏幕小部件未更新

在添加小部件 android 之前显示微调器

小部件未在 pyqt5 中显示标签

应用小部件仅在主屏幕上显示为灰色