【发布时间】:2020-06-02 18:15:55
【问题描述】:
我希望我的小部件在创建小部件时获得的默认“应用信息”和“从家中删除”旁边有一个“配置小部件”选项。 我已经研究了几个小时的 android 文档,但我找不到这样做的标准方法。 我不确定是否有标准的 android 方法可以将菜单项添加到此上下文菜单,或者它是否只是特定于已安装的启动器但在我的三星设备上,预安装的时钟小部件具有如下所示的确切功能:
我尝试添加app shortcut(但显然不是这种情况,因为小部件没有“LAUNCHER”活动)
我尝试添加option menu
我尝试向我的配置活动添加不同的操作。
对正确文档的任何指导或指导将不胜感激。
【问题讨论】:
-
“但是在我的三星设备上,预装的时钟小部件具有这个确切的功能”——你的启动器是什么?如果答案是“三星的”,则不需要这是一个应用小部件。不要根据制造商的发射器得出关于行为的结论。始终使用第三方启动器。请记住,有数百个启动器,没有一个必须提供这样的上下文菜单。可能有一个
<intent-filter>,你可以使用它,一些启动器会尊重它。 -
@CommonsWare 感谢您多年来为社区服务,这是一种荣幸。是的,它是三星启动器。因此,如果大多数启动器上没有标准的小部件上下文菜单,如果我不想在视图上显示可见按钮,我最好的方法是什么?标准方式是只有一个应用程序(启动器活动)与小部件一起使用/接受用户必须删除并重置小部件以重新配置?
-
“所以如果大多数启动器上没有标准的小部件上下文菜单”——我并不是说大多数启动器上都没有。我确实说过,没有要求任何人都必须拥有一个。 “标准方式是只有一个应用程序(启动器活动)与小部件一起使用” - 要么,要么响应一般的点击事件并使用它们来启动配置活动。我使用的大多数应用小部件都将点击非按钮区域视为启动与应用小部件相关的某些活动的请求(无论是配置还是其他)。
-
但是,例如,我使用 Nova Launcher,虽然它有一个上下文菜单,但我尝试过的任何应用程序小部件都没有“设置”选项。我不能排除您可以遵循某些启动器可能使用的某些
<intent-filter>约定的可能性,但您不能假设每个启动器总是提供对它的支持。最后,谢谢你的好话! -
@CommonsWare 它甚至适用于 Microsoft 和默认的 Android 启动器。解决方案是一个简单的
android:widgetFeatures="reconfigurable",如答案所示。它需要 Android SDK 28。
标签: android android-widget android-contextmenu android-appshortcut