我正在做一个应用程序,其中我的要求是评级栏应该总是有触摸事件给予评级但它不应该有拖动功能给予评级所以有什么办法,如何在Android评级栏中禁用拖动功能。
答案 0 :(得分:3)
要停用拖动功能,请在onMotionEvent()
上实施RatingBar
侦听器。然后,获取ACTION_DOWN
上的x坐标,并与ACTION_UP
的x坐标进行比较。如果存在很大差异(Drag发生),则返回true以处理事件;否则返回false。
示例:
RatingBar bar = (RatingBar) findViewById(R.id.rating_bar);
bar.setOnTouchListener(new View.OnTouchListener()
{
private float downXValue;
@Override
public boolean onTouch(View v, MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
downXValue = event.getX();
return false;
}
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
// When true is returned, view will not handle this event.
return true;
}
if(event.getAction() == MotionEvent.ACTION_UP)
{
float currentX = event.getX();
float difference = 0;
// Swipe on left side
if(currentX < downXValue)
difference = downXValue - currentX;
// Swipe on right side
else if(currentX > downXValue)
difference = currentX - downXValue;
if(difference < 10 )
return false;
return true;
}
return false;
}
});