如何在android分级栏中禁用拖动功能

如何在android分级栏中禁用拖动功能,android,Android,我正在做一个应用程序,其中我的要求是评级栏应该总是有触摸事件来给出评级,但它不应该有拖动功能来给出评级,所以有没有办法,如何在Android评级栏中禁用拖动功能。要禁用拖动功能,请在评级栏上实现onMotionEvent()侦听器。然后,获取动作向下的x坐标,并与动作向上的x坐标进行比较。如果存在很大差异(发生拖动),则返回true以处理事件;否则返回false 例如: RatingBar bar = (RatingBar) findViewById(R.id.rating_bar); bar.

我正在做一个应用程序,其中我的要求是评级栏应该总是有触摸事件来给出评级,但它不应该有拖动功能来给出评级,所以有没有办法,如何在Android评级栏中禁用拖动功能。

要禁用拖动功能,请在
评级栏上实现
onMotionEvent()
侦听器。然后,获取
动作向下
的x坐标,并与
动作向上
的x坐标进行比较。如果存在很大差异(发生拖动),则返回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;
     }
});
RatingBar=(RatingBar)findViewById(R.id.rating\u bar);
setOnTouchListener(新视图.OnTouchListener()
{
私人浮动价值;
@凌驾
公共布尔onTouch(视图v,运动事件)
{
if(event.getAction()==MotionEvent.ACTION\u向下)
{
downXValue=event.getX();
返回false;
}
if(event.getAction()==MotionEvent.ACTION\u MOVE)
{
//返回true时,视图将不处理此事件。
返回true;
}
if(event.getAction()==MotionEvent.ACTION\u UP)
{
float currentX=event.getX();
浮差=0;
//向左滑动
如果(当前X<向下X值)
差值=向下x值-当前x;
//向右滑动
否则如果(currentX>downXValue)
差值=电流x-下降x值;
如果(差值<10)
返回false;
返回true;
}
返回false;
}
});

您可以在XML android中使用此示例:isIndicator=“true”还可以将此行添加到代码分级栏中。setFocusable(false);