设置 RatingBar Android 中显示的星数下限
Posted
技术标签:
【中文标题】设置 RatingBar Android 中显示的星数下限【英文标题】:Set lower limit of number of stars shown in RatingBar Android 【发布时间】:2011-11-26 20:55:57 【问题描述】:使用 android 中的 RatingBar 小部件,您可以设置要显示的星数,但是有没有办法设置始终处于活动状态的星数的下限。例如,对无法提交 1 评级的电影或其他内容进行评级?
【问题讨论】:
你可以明确地设置评级为任何值,假设 2 如果低于将其绑定到 2 onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) 在这些任何值中假设 1 如果低于在代码中将其绑定到 2 【参考方案1】:如果这在严格意义上的框架中是不可能的,您可以将默认值 1 设置为 android:rating
设置为 1,并在 RatingBar
上添加一个侦听器以在用户尝试时返回 1再低点不?
【讨论】:
感谢您的回答,它可以工作我只是觉得它的代码很混乱。 查看 Paresh 的答案以获得更详细的我的版本。这不是很乱。【参考方案2】:有没有办法设置始终处于活动状态的星星数量的下限。
是的,您可以使用setRating()
方法设置评级。
例如:
ratingBar.setRating(rat);
举个例子,你不能提交 1 分的电影或某事?
为此,您必须在 onRatingChanged() 方法中实现一个条件。 例如:
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener()
@Override public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser)
// implement your condition here
);
【讨论】:
【参考方案3】: <RatingBar android:id="@+id/ratingbar"
android:layout_
android:layout_
android:numStars="5"
android:stepSize="1.0"
android:rating="1"/>
通过设置 rating =1 显示等级 1。
【讨论】:
【参考方案4】:正如@sephy 所提到的,支持他的回答。我正在添加我在我的应用中使用过的示例代码。
mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener()
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser)
if(selectedRating<=0)
mRatingBar.setRating(1);
);
【讨论】:
以上是关于设置 RatingBar Android 中显示的星数下限的主要内容,如果未能解决你的问题,请参考以下文章