2011-08-03 188 views
0

我試圖讓我的列表項目中顯示一個按鈕(在XML中聲明爲android:visibility:「gone」),以在我對其執行某些手勢時顯示爲可見。然而,我怎樣才能正確地通知getView方法來顯示僅在列表視圖項上的按鈕?僅在特定列表視圖項目上顯示項目


我試過使用getChildAt(position),它最終一次顯示幾個按鈕。

我嘗試通過位置爲例,我發現手勢是從pointToPosition執行,並將其傳遞到適配器中以顯示getView方法,但它具有同時顯示幾個相同的問題。

有誰知道我該如何解決這個問題?

+0

你用什麼事件處理程序爲手勢?你指的是哪個getView方法? –

+0

@Dan getView方法我指的是適配器類中的那個。我做了一個「自制」的手勢方法,如果執行了這樣的手勢,則返回true。 –

+0

@Dan基本上,當MOTIONEVENT檢測到一個動作時,我會通過pointToPosition方法記錄它的選定項索引。這對我來說應該足以識別我需要顯示按鈕的ID。 –

回答

0

我想你可能會誤解Adapter.getView()如何在呈現ListView時創建或重新使用佈局,它也需要快速,所以不鼓勵在此方法中使用條件操作。雖然ListView.getChildAt()可能工作,但它不能有效地使用API​​。除非您使用ArrayAdapter,否則您的適配器將具有setViewBinder()(如果是這樣,我建議使用SimpleAdapter是因爲附加功能)。使用ViewBinder實現來切換按鈕的可見性。

如果您希望繼續使用ArrayAdapter,請使用ListView.getChildAt(int)findViewById(R.id.your_button).setVisibility()。如果這是您已經嘗試過的,並且將所有按鈕設置爲可見,請發佈相關代碼。

+0

謝謝,我將不得不嘗試查看是否可以將代碼恢復到之前的狀態,並且如果可以的話將代碼發佈。謝謝。 –