Android Studio「New」菜单中无「Widget」选项,如何创建新App Widget?
Android Studio「New」菜单中无「Widget」选项,如何创建新App Widget?
嗨,我之前也遇过这个糟心的情况!明明官方文档说选New>Widget>App Widget就能生成,结果自己的AS菜单里偏偏找不到这个选项。别慌,给你几个实用的解决办法:
通过搜索模板直接创建
有时候菜单选项会因为AS配置或插件问题隐藏,但模板其实还在。按下快捷键:Windows/Linux用Ctrl+Shift+A,Mac用Cmd+Shift+A,在弹出的搜索框里输入「App Widget」,如果能搜到这个模板,直接点击就能启动自动创建流程,和菜单里点进去的效果一样。检查你的项目模块类型
要注意,Widget选项只在Android应用模块(Application Module)里才会显示。如果你的当前模块是Library模块,菜单里肯定找不到。先切换到应用模块(比如app模块),再去New菜单里找找看。另外也可以检查下AS版本,尽量更新到较新的稳定版,旧版本可能存在菜单显示bug。手动创建所有必要文件
如果上面的方法都不行,那就手动撸文件吧,其实AS自动生成的也无非是三个核心部分,步骤很清晰:- 创建Widget布局文件:在
res/layout目录下新建XML布局(比如widget_main.xml),注意Widget支持的控件有限,像TextView、ImageView这类基础控件没问题,复杂控件比如RecyclerView就别用了,按照需求设计界面即可。 - 创建AppWidgetProvider配置文件:在
res/xml目录下新建XML文件(比如app_widget_info.xml),内容示例如下,记得替换成自己的包名和资源:<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="40dp" android:minHeight="40dp" android:updatePeriodMillis="86400000" android:initialLayout="@layout/widget_main" android:widgetCategory="home_screen"> </appwidget-provider> - 创建AppWidgetProvider类:新建一个Kotlin/Java类,继承
AppWidgetProvider,重写onUpdate方法处理Widget的更新逻辑,示例(Kotlin):class MyWidget : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { for (widgetId in appWidgetIds) { val views = RemoteViews(context.packageName, R.layout.widget_main) views.setTextViewText(R.id.widget_text, "我的第一个Widget") appWidgetManager.updateAppWidget(widgetId, views) } } } - 在Manifest中注册Provider:打开
AndroidManifest.xml,添加如下代码,替换成自己的类名和配置文件路径:<receiver android:name=".MyWidget"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/app_widget_info" /> </receiver>
- 创建Widget布局文件:在
内容来源于stack exchange
相关产品推荐
相关产品推荐

