【问题标题】:Android Contextual menu (similar to music app)Android 上下文菜单(类似于音乐应用)
【发布时间】:2013-02-07 05:03:47
【问题描述】:

我想为列表视图创建一个上下文菜单,类似于列表视图中的 google play 音乐应用程序使用的菜单。 (见截图。三角形按钮打开相册的菜单。然后可以根据所选项目选择不同的选项。)但我也在其他应用程序中看到了这个元素。

https://lh5.ggpht.com/IvSpTcmdyUOC9GoX-x528xAzy9jEPjWCLcNcru4CBEcUNZ-YHo0y2TQHcGmuvOQ2zg

问题是我既不知道如何正确实现三角形按钮(这只是一个普通的图像按钮吗?)也不知道如何为每个条目打开那个弹出窗口。

我尝试过的一种方法是使用微调器。但问题是微调器总是和其中最长的元素一样宽,而不仅仅是三角形。否则这将是一个很好的解决方案。有没有办法将微调器设置为较小的尺寸并隐藏它下方的水平线?

或者微调器是完全错误的方法,我应该以不同的方式解决这个问题?

【问题讨论】:

    标签: android


    【解决方案1】:

    您应该使用 Button 或 ImageButton 来触发 PopupMenu。您可以使用Android Holo Colors 创建背景图像。或者,Holo 默认微调器背景也可以解决问题。

    当按钮被点击时,你应该触发PopupMenu。 Android PopupMenu 适用于 Android SDK API 11+。因此,如果您要支持较低版本,则应考虑使用外部库,例如 HoloEverywhere。

    微调器小部件不适合您的用途。

    【讨论】:

    • PopupMenu 看起来是个不错的解决方案,但它需要 API 级别 11。:/ 我实际上计划支持 8 级以上。
    • 如果你支持 API 8+,你可以考虑 HoloEverywhere 库。他们向后移植了 PopupMenu-Widget,但由于他们的版本不如原来的版本好,所以我也写了一个简单的向后移植。在 github 上看一下。 github.com/Taig/PopupMenuCompat
    • 太棒了!您的图书馆似乎工作完美。 (我会将您的答案标记为已接受,如果您可以在答案中添加指向 holoeverywhere/您的库的链接,那就太好了。只是为了让它更明显)
    【解决方案2】:

    我之前没有真正使用过音乐应用程序,但我会尝试根据我从屏幕截图中的理解来回答这个问题。在我看来,出现的选项显示在一个简单的对话框中。此对话框有一个列表,可以按照给定的here 轻松实现。
    所以,您可以在列表项中包含Button、ImageView、ImageButton 或任何其他View,然后单击将显示对话框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多