我有一个RatingBar
的标准实现。 5星,1步。
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1"
android:progressDrawable="@drawable/dark"
android:rating="@={viewModel.rating}"
/>
我注意到我实际上在某些设备或品牌上存在问题:三星,Nexus,也许还有更多...但是我在索尼和LG设备上没有问题,也许在这里也有更多问题。
问题在于选择值时的精度确实很差。看来,如果我通过可绘制等级的中间部分,它将填充以下“星号”。这似乎是这些设备的阈值,而事实就是如此。 LG和Sony的行为方式是,当您经过两个“星星”之间的距离的一半时,它将填充下一个星星。
那么,有什么我可以防止的事情吗?
最佳答案
据我所知,没有办法解决它。
我是一个库的创建者,该库提供了Android默认的RatingBar:SimpleRatingBar的替代方法,我们在一个issue中讨论了此行为。
在资料库中,我们修改了此行为,因此只有按下至少1/4颗星时,才会选择一颗星。我相信这可以改善使用时的整体体验。
如果您愿意,可以尝试一下。
它具有以下特点:
android:layout_width
:可以将其设置为wrap_content
,match_parent
或可选dp。 Here is a preview of it
您可以在
jcenter
或Maven Central
中找到它。因此,在build.gradle
文件中,只需添加您的依赖项即可:compile 'com.iarcuschin:simpleratingbar:0.1.+'
我希望它有用。