在我的其中一個活動中,我有一個顯示位置列表的ListView。對於每個列表項目,我需要一個指向相應位置方向的小箭頭圖標。我通過擴展ImageView來實現這個圖標。此自定義視圖具有一個偵聽器,通過相應地旋轉圖標圖像來響應設備方向的更改。我在onAttachedToWindow()方法中註冊偵聽器,並在onDetachedFromWindow()中註銷它。這種工作,但問題是onDetachedFromWindow()有時僅在包含的Activity已經暫停後才被調用很長時間。此外,整體佈局總體上看起來有點冒險。所以我的問題是:有沒有正確的方式來註銷聽衆,或者你會以完全不同的方式來實現這個開始?Android:檢測視圖的父活動是否暫停
1
A
回答
1
我覺得你有困難,因爲你的設計是像你承認的哈克。我認爲你應該做的是讓你的活動聽取設備方向,並使用onPause/onResume
來處理註冊方向變化。然後有一個自定義的光標,當它發生變化時由Activity更新。自定義光標然後可以調用notifyDataSetChanged
來告訴ListView
更新。然後在getView
調用中,您可以傳入箭頭所需的數據以正確顯示。這樣,只有那些可見的箭頭纔會被更新。您只有一個地方接收方向數據,稍後您可以處理onScrollStateChanged
,並在用戶滾動時停止更新箭頭(如果它太多地影響滾動動畫)。
相關問題
- 1. 如何檢測視圖的父級活動是否被破壞
- 2. 可以檢測活動是否已暫停? (線程問題)
- 3. 如何檢測AVAudioRecorder是否暫停?
- 4. 檢測應用程序的暫停(不是活動)
- 5. 暫停的活動
- 6. 檢查活動是否存在視圖
- 7. jquery檢測暫停
- 8. Android:檢測整個應用程序(而不是個人活動)是否暫停/退出?
- 9. 檢測暫停時的UISearchBar
- 10. 暫停/恢復活動的另一個活動開始的Android
- 11. 檢測Android MediaPlayer是否停止播放?
- 12. Android;如何檢測父活動是否仍然處於活動棧活着,然後receate它
- 13. Android:滾動視圖停止滾動時檢測
- 14. Android:當水平滾動視圖停止滾動時檢測
- 15. 檢查當前活動是否需要活動(同一父母)
- 16. 無法暫停活動?
- 17. 如何暫停活動?
- 18. 無法暫停活動 - nullpointerexception
- 19. Android檢測活動是否位於歷史堆棧的頂部
- 20. Quartz.NET - 如何檢測作業是否暫停?
- 21. 檢測其他音樂是否在IOS中暫停?
- 22. 在調用onPause()之前活動是否暫停?
- 23. 當活動暫停時,定時器功能是否自動停止?
- 24. Android中是否存在暫停狀態?
- 25. 當android活動進入暫停狀態時,真的暫停了什麼?
- 26. Android:如何檢測活動是否進入背景?
- 27. android檢測對話框是否處於活動狀態?
- 28. 當活動暫停時Runnable停止
- 29. Android檢測用戶是否停止移動
- 30. Android父活動
非常感謝!在Activity中聽取方向似乎是正確的,因爲不需要在多個地方執行此操作,而Activity也是我可以使用onPause和onStart的唯一位置。然而,我開始以這種方式實現它,並發現了一個新問題:以這樣高的頻率調用notifyDataSetChanged對性能影響更大,因爲getView還會更新有關列表項的其他所有內容。必須有一種方法來確保只有圖標受到這些更新的影響。現在我該怎麼做? – 2010-06-21 23:01:53