我有一個RatingBar(作爲一個「星形條」)實現我正在處理,雖然我使用的代理方法使用onRatingChanged(),但有一個明顯的遺漏(或者我只是盲目地)在API中:只有這一個事件發生時,當評級實際上改變,而不是當用戶點擊它已經設置的相同星星時。例如,如果我在評級欄中顯示3/5星級評分,則點擊2或5組火災onRatingChanged()但點擊3完全沒有任何影響。Android RatingBar:與當前評分相同的同名明星處理程序?
我正在捕獲onTouch並允許它傳播(用於其他自定義UI目的),但我沒有提及當然選擇了哪顆星。如果我這樣做了,我可以將它與當前的getRating()進行比較,並處理「相同的星形分接」情況。
任何人都試圖完成這一點,或有任何提示,我可以探索其他方法?我已經在RatingBar層次結構上下了,並沒有看到任何有用的東西。理想的onRatingChanged()只會觸發相同的評級,我可以在那裏處理它。 :/
謝謝。
UPDATE
感謝巴斯麪包車斯坦下面,我結束了使用一個Runnable耽誤我的觸摸事件處理程序的ACTION_UP檢查我目前對新的分級檢查的執行。這不是很好,但它似乎工作(設備上的待定)。請記住,這是本身的RatingBar的子類IMPL:
希望它的作品,沒有自己驗證它。 –
看起來理論上很好,但不幸的是我發現onRatingChanged在ACTION_UP事件之後纔會觸發。 :/ –
作爲另一個複雜因素,我發現設置stepSize也會觸發onRatingChanged,因爲它會請求進度刷新(這是一個巨大的PITA,這使得難以測試您的答案) –