2012-09-14 149 views
1

我正在尋找一種方法在ListView中的項目下打開ContextMenu。 這個實現的例子可以在「reddit is fun」android應用程序中找到。我附上了一個屏幕截圖供您參考。在ListView中的項目下打開上下文菜單

screenshot

我一直在努力實現這一目標相當長的一段時間,但一直未果。我怎樣才能實現這個功能?

我認爲這是顯示上下文菜單的一種非常好的方式,我也想使用這種技術!

+3

我會直接在行佈局中實現額外的菜單。 – Luksprog

+0

@Luksprog今晚我會試試這個。但是我懷疑當我滾動ListView時,它會重新使用這個菜單作爲另一個列表項目,如果我修改了菜單來顯示,可以說「Unsave」而不是「Save」它會錯誤地爲新項目顯示「Unsave」(因爲在'ListView'滾動期間視圖被重用) – zeiger

+0

如果你小心地顯示每一行的正確狀態(這是你應該已經做的事情,當使用ListView時)。你只需要「存儲」並記住每一行的正確狀態。根據您當前的行數據,這可能非常簡單。 – Luksprog

回答

2

該菜單可以直接在行佈局中實現。您必須將額外的菜單佈局添加到當前的佈局中(並且首先隱藏它,但當用戶首次使用ListView時,您可能不想顯示它)。所有你必須添加邏輯來顯示/隱藏菜單,並跟蹤菜單本身(在自定義適配器中)和其中的項目(例如菜單打開/關閉,項目的狀態)。你可以在這裏找到一個簡單的例子:https://gist.github.com/3722950

0

使用PopupWindow來保存您的上下文菜單項。彈出式窗口可以很容易地定位在屏幕上。更多關於PopupWindow可以找到here,或谷歌教程關於該主題。

+0

我不確定如何確保'PopupWindow'將出現在ListView中的項目下。我不想要一個浮動容器出現在當前位於前景的頂部 – zeiger

+0

您可以進行像素精確定位。所以你需要的是獲得行視圖的屏幕位置。看到http://stackoverflow.com/questions/2139700/how-to-get-location-on-screen-of-row-in-listview –

0

你可以使用UBabBarController與tabBars作爲共享,保存隱藏,像那樣的評論。然後,我們點擊選項卡後,將顯示特定的列表視圖。

+0

我不明白你的意思。你的意思是我應該在點擊ListView中的一個項目時爲這些動作添加動作欄圖標?這不是我想要達到的。 – zeiger

+0

你的意思是,你想在列表視圖中的每個項目下添加上下文菜單? – Vaddi

+0

是的,我需要在每個項目下添加一個上下文菜單 – zeiger

相關問題