【问题标题】:Android popup menu from home screen widget来自主屏幕小部件的 Android 弹出菜单
【发布时间】:2015-10-02 19:35:34
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这个屏幕截图是实际的小部件还是设计模拟?
  • @Karakuri 这是我手机上的实际工作小部件!

标签: android android-widget popupmenu


【解决方案1】:

您不能将android.support.v7.widget.PopupMenu 直接与RemoteViews 一起使用。但是你可以复制这种行为:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多