【问题标题】:Android widgets not showing on screenAndroid 小部件未在屏幕上显示
【发布时间】: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_width="match_parent"
android:layout_height="match_parent"
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_width="wrap_content"
    android:layout_height="wrap_content"/>

<Button
    android:text="Click me!"
    android:layout_weight="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<Button
    android:text="Click me!"
    android:layout_weight="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>

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

【问题讨论】:

    标签: java android android-widget


    【解决方案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,因此会发生崩溃.尝试删除此行以开始(或指向正确的类)

    【讨论】:

    • 我删除了那条线,终于成功了!,非常感谢...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多