2 回答

TA貢獻1752條經驗 獲得超4個贊
這是我將如何做到這一點:
首先,按鈕網格實際上是一個帶有自定義視圖的 RecyclerView 和一個 GridLayoutManager。
其次,我將有一個模型類與 RecyclerView 中的每個項目相關聯。該模型將包含它應該播放的聲音以及您可能需要的其他內容。
第三,我會在 RecyclerView 上附加一個自定義適配器。每個項目都會有一個關聯的模型對象。當我點擊一個對象時,我會首先檢查它是否附加了一些聲音(通過檢查關聯的模型對象)。如果是,我會簡單地播放聲音。如果沒有,我將顯示彈出菜單。在選擇彈出菜單時,我會用所選數據更新關聯模型,然后更新按鈕的視圖。
編輯(對 GridView 做同樣的事情)
您想要實現的目標背后的邏輯與上述內容基本相似,只是您管理項目的方式發生了變化。這是所需的步驟
首先,您必須創建一個包含盡可能多的按鈕的 GridView。為每個按鈕分配一個唯一的 ID,以便可以訪問。
其次,創建一個模型類(與 RecyclerView 的情況相同)。
第三,將點擊偵聽器附加到 GridView 中的每個按鈕。單擊時,您將檢查與該按鈕關聯的模型對象。如果它附有一些聲音,您將播放聲音。否則,您將顯示彈出菜單并在選擇項目時將其分配給模型對象。

TA貢獻1804條經驗 獲得超7個贊
有兩種方法可以實現它。
1.通過視圖實現
通過視圖實現此功能,這比上下文菜單有一個優勢,您可以設計自己的視圖并像 Pinterest 的應用程序一樣實現它和所有
2.通過上下文菜單實現
上下文菜單是內置函數,可讓您實現菜單類型。這是內置視圖,您可以編寫幾行代碼來實現
添加回答
舉報