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