如何禁用Horizo​​ntalScrollView滚动按钮单击并再次启用另一个按钮单击?

时间:2017-11-05 05:02:04

标签: android horizontalscrollview

我在xml中添加了一个Horizo​​ntalScrollView,我想在按钮点击时禁用滚动,并在另一个按钮点击时再次启用。

点击按钮进行滚动停止工作,但我不知道如何再次启用滚动功能。

以下代码是禁用滚动的方式。

class OnTouch implements View.OnTouchListener
{
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return true;
    }
}

我添加了上面的课程,然后

final HorizontalScrollView scrollView = (HorizontalScrollView)findViewById    (R.id.horizontalScrollView);
    Button stop = (Button)findViewById(R.id.stop);
    stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            scrollView.setOnTouchListener(new OnTouch());
        }
    });

我在onCreate方法中添加了上面的代码。我想添加另一个按钮(可能"滚动")我希望该按钮再次启用滚动。

2 个答案:

答案 0 :(得分:1)

这个怎么样(我没有测试它,所以可能有拼写错误);

class OnTouch implements View.OnTouchListener { 
    public boolean intercept = false;
    @Override public boolean onTouch(View v, MotionEvent event) { 
        return intercept; 
} }

final OnTouch listener = new OnTouch()); 
final HorizontalScrollView scrollView = (HorizontalScrollView)findViewById (R.id.horizontalScrollView); 
scrollView.setOnTouchListener(listener);
Button stop = (Button)findViewById(R.id.stop);
stop.setOnClickListener(new View.OnClickListener() { listener.intercept=true});
Button start = (Button)findViewById(R.id.start);
start.setOnClickListener(new View.OnClickListener() { listener.intercept=false});

答案 1 :(得分:0)

1 - 与onClickListener相关联的Button功能:

a)删除scrollView.setOnTouchListener(new OnTouch())

b)切换boolean(例如scrollEnabled)以指示是否启用了滚动。

2 - 在您的ScrollView课程中,覆盖onTouchEvent功能并将其放入其中:

    if(scrollEnabled){
        return(false);
    else {
        return(true);
    }