私は作業中のRatingBar(「スターバー」として)を実装していますが、onRatingChanged()デリゲートメソッドを使用してうまくいっていますが、 APIにはブラインド)が表示されます。実際にはの変更がに変更されたときだけ、この1つのイベントが発生します。ユーザーが既に設定されているのと同じ星をタップしたときではありません。Android RatingBar:現在の評価と同じタップのハンドラーですか?
たとえば、評価バーに3/5の星の評価が表示されている場合、2または5回タップすると、onRatingChanged()が発生しますが、3回タップしても何も起こりません。
私はonTouchをキャプチャしており、それを(他のカスタムUIの目的のために)伝播できるようにしていますが、私はもちろんスターがタップされた参照を持っていません。私がした場合、私はそれを現在のgetRating()と比較し、 "同じ星タップ"のケースを扱うことができます。
他の誰もこれをまだ達成しようとしましたか、私が探索できる他の方法についてのヒントはありますか?私はRatingBar階層を上下に行ってきましたが、役立つものは何も表示されません。理想的にはonRatingChanged()は同じ評価でただ起動し、そこではそれを処理できます。 :/
ありがとうございます。下記のババンシュタインへ
UPDATE
おかげで、私は私のタッチイベントハンドラのACTION_UPチェックの新しい格付けチェック対私の現在の実行を遅延するのRunnableを使用して終了。それはかなりではありませんが、それは動作するようです(デバイス上に未定)。これはRatingBar自身のサブクラスIMPLである点に注意してください。
希望していますが、それは自分ではまだ検証していません。 –
それは理論的には良いようですが、残念ながらonRatingChangedはACTION_UPイベントの後まで起動しません。 :/ –
別の問題として、stepSizeを設定するとonRatingChangedも発生することが判明しました。これは進行状況の更新を要求するためです(これはあなたの回答をテストするのを困難にした巨大なPITAでした)。 –