如何在单击按钮时禁用 HorizontalScrollView 滚动并在单击另一个按钮时再次启用?
How to disable HorizontalScrollView scrolling on button click and enable again on another button click?
我在 xml 中添加了一个 HorizontalScrollView,我想在单击按钮时禁用滚动并在单击另一个按钮时再次启用。
通过单击按钮禁用滚动有效,但我不知道如何再次启用滚动。
下面的代码是禁用滚动的工作原理。
class OnTouch implements View.OnTouchListener
{
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
}
我添加了上面的 class 然后,
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 方法中添加了上面的代码。我想添加另一个按钮(可能是 "scroll"),我希望该按钮能够再次启用滚动。
这个怎么样(没测试过,可能有错别字);
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 - 在与您的 Button
关联的 onClickListener
函数中:
a) 删除 scrollView.setOnTouchListener(new OnTouch())
,
b) 切换 boolean
(例如 scrollEnabled
)以指示是否启用滚动。
2 - 在您的 ScrollView
class 中,覆盖 onTouchEvent
函数并将其放入其中:
if(scrollEnabled){
return(false);
else {
return(true);
}
我在 xml 中添加了一个 HorizontalScrollView,我想在单击按钮时禁用滚动并在单击另一个按钮时再次启用。
通过单击按钮禁用滚动有效,但我不知道如何再次启用滚动。
下面的代码是禁用滚动的工作原理。
class OnTouch implements View.OnTouchListener
{
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
}
我添加了上面的 class 然后,
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 方法中添加了上面的代码。我想添加另一个按钮(可能是 "scroll"),我希望该按钮能够再次启用滚动。
这个怎么样(没测试过,可能有错别字);
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 - 在与您的 Button
关联的 onClickListener
函数中:
a) 删除 scrollView.setOnTouchListener(new OnTouch())
,
b) 切换 boolean
(例如 scrollEnabled
)以指示是否启用滚动。
2 - 在您的 ScrollView
class 中,覆盖 onTouchEvent
函数并将其放入其中:
if(scrollEnabled){
return(false);
else {
return(true);
}