主屏幕小部件的Android弹出菜单

时间:2014-04-27 19:40:21

标签: android android-widget popupmenu

我想在主屏幕小部件中显示一个弹出式菜单,如下图所示,但PopupMenu构造函数方法中有一个View anchor参数。

但我无法访问AppWidgetProvider类中的视图,只有RemoteView可用。

那么,我如何在我的小部件中实现一个弹出菜单?

任何帮助将不胜感激。感谢。

Popup menu from widget

1 个答案:

答案 0 :(得分:0)

您无法直接将android.support.v7.widget.PopupMenuRemoteViews一起使用。但是你可以复制这种行为:

  1. 向RemoteViews布局添加锚点视图(此视图可以是任何支持的视图:https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
  2. 使用已定义的意图操作创建PendingIntent,并为锚点视图设置setOnClickPendingIntent
  3. 通过意图操作抓取Intent onReceive中的AppWidgetProvider
  4. 调用intent.getSourceBounds()以获取所点击的锚点视图的屏幕位置
  5. 启动完全透明Activity并将屏幕位置发送到Activity
  6. 在透明PopupMenu
  7. 中的已传输屏幕位置创建并打开Activity
  8. finish()透明Activity,如果用户未点击PopupMenu的项目