2015-11-19 51 views
5

我有以下的RatingBar:Android。的RatingBar(填充下一個明星)

<RatingBar 
       android:id="@+id/ratingBar" 
       android:layout_width="wrap_content" 
       android:layout_height="35dp" 
       android:numStars="5" 
       android:max="5" 
       android:stepSize="1.0" 
       android:layout_marginTop="12dp"/> 

當我按下一個明星的左側部分 - 它被選中,但是當我按下右側部分 - 選擇下面的明星。我需要點擊的星星被選中,無論我點擊哪個部分。 請幫我理解錯在哪裏。

+0

? –

+0

http://sampleprogramz.com/android/ratingbar.php –

+0

嘗試刪除android:layout_marginTop或父容器填充 – AbuQauod

回答

7

這也許是延伸ProgressBarRatingBar一個不幸的副作用,其在內部使用一個int進度進行舍入(而不是ceil)從float去尋求位置到int進展。我已經找到了最好的解決辦法是設置stepSize0.01而不是1,然後做你使用`setOnTouchListener`設置

rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(final RatingBar ratingBar, final float rating, final boolean fromUser) { if (fromUser) { ratingBar.setRating(Math.ceil(rating)); } } });

+0

完美!感謝您的時間! – Nick

相關問題