2015-11-19 7 views
5

मैं निम्नलिखित RatingBar है:एंड्रॉइड। 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

सेट किया था आप setOnTouchListener' का उपयोग कर '?? –

+0

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

+0

एंड्रॉइड को हटाने का प्रयास करें: layout_marginTop या पैरेंट कंटेनर पैडिंग – AbuQauod

उत्तर

7

यह RatingBar की एक दुर्भाग्यपूर्ण पक्ष प्रभाव ProgressBar का विस्तार है, जो आंतरिक रूप से गोलाई (बल्कि ceil से) के साथ एक int प्रगति का उपयोग करता है एक float से जाना करने की कोशिश एक int प्रगति के लिए स्थिति शायद है। सबसे अच्छा समाधान मैं पाया है, अपने stepSize0.01 बल्कि तो 1 करने के लिए सेट करने के लिए है तो

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

संबंधित मुद्दे