2 回答
TA贡献1752条经验 获得超4个赞
这是我将如何做到这一点:
首先,按钮网格实际上是一个带有自定义视图的 RecyclerView 和一个 GridLayoutManager。
其次,我将有一个模型类与 RecyclerView 中的每个项目相关联。该模型将包含它应该播放的声音以及您可能需要的其他内容。
第三,我会在 RecyclerView 上附加一个自定义适配器。每个项目都会有一个关联的模型对象。当我点击一个对象时,我会首先检查它是否附加了一些声音(通过检查关联的模型对象)。如果是,我会简单地播放声音。如果没有,我将显示弹出菜单。在选择弹出菜单时,我会用所选数据更新关联模型,然后更新按钮的视图。
编辑(对 GridView 做同样的事情)
您想要实现的目标背后的逻辑与上述内容基本相似,只是您管理项目的方式发生了变化。这是所需的步骤
首先,您必须创建一个包含尽可能多的按钮的 GridView。为每个按钮分配一个唯一的 ID,以便可以访问。
其次,创建一个模型类(与 RecyclerView 的情况相同)。
第三,将点击侦听器附加到 GridView 中的每个按钮。单击时,您将检查与该按钮关联的模型对象。如果它附有一些声音,您将播放声音。否则,您将显示弹出菜单并在选择项目时将其分配给模型对象。
TA贡献1804条经验 获得超7个赞
有两种方法可以实现它。
1.通过视图实现
通过视图实现此功能,这比上下文菜单有一个优势,您可以设计自己的视图并像 Pinterest 的应用程序一样实现它和所有
2.通过上下文菜单实现
上下文菜单是内置函数,可让您实现菜单类型。这是内置视图,您可以编写几行代码来实现
添加回答
举报