[英]Single star RatingBar
我正在尝试显示一个只能显示一星评级或没有星级的RatingBar视图。 这似乎是微不足道的......
我的评级栏定义如下:
我的视图实现了OnRatingBarChangeListener和OnTouchListener
我的OnRatingBarChange处理程序没有代码。 我的OnTouch处理程序如下所示:
@Override
public boolean onTouch(View v, MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
if(this.mRating.getRating() == 0)
{
this.mRating.setRating(1);
}
else
{
this.mRating.setRating(0);
}
return true;
}
return false;
}
无论如何,onTouch事件都无法将评级设置回零。 这似乎太微不足道了。 我究竟做错了什么?
谢谢!
考虑使用ToggleButton
和btn_star
stock drawable。 这是一个例子:
<ToggleButton
android:button="@android:drawable/btn_star"
android:background="@android:color/transparent"
android:textOn=""
android:textOff=""
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
RatingBar从SeekBar扩展而且侦听器实际上需要一个幻灯片操作。 因此,当只有一颗恒星时,RB不能设置为0(或不用于此目的)。 用于此类功能的适当小部件(这里不足为奇)是ToggleButton。
我遇到了同样的问题,试图使用一个明星RatingBar作为最喜欢的按钮。 但是ToggleButton正是你需要的这类东西。
这是我为ToggleButton实现的。 ( _favourited
bool专门用于代码中的某些内容,我现在不记得了)
favourite_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!_favourited) {
// Do stuff
_favourited = true;
} else {
// Do stuff
_favourited = false;
}
}});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.