我已经尝试过了:
scrollView.setEnable(false);
scrollView.setOnTouchListener(null);
scrollView.requestDisallowInterceptTouchEvent(true);
但这些都没有奏效......我无法理解为什么,还有其他办法吗?
xml中的scrollView:
<ScrollView
android:id="@+id/mainPage_scroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:focusableInTouchMode="true"
android:layout_below="@+id/tabBar" >
</ScrollView>
答案 0 :(得分:4)
为了将来参考,我用于“ScrollView
”内的“可绘制区域”的更简单的解决方案是使用requestDisallowInterceptTouchEvent
告诉父级和链上不干扰触摸操作。
例如在可绘制视图上,其中本例中的父级是LinearLayout
内的ScrollView
,但也可以嵌套在其他组件中:
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
this.parent.requestDisallowInterceptTouchEvent(true);
// etc...
}
else if(event.getAction() == MotionEvent.ACTION_MOVE)
{
// etc...
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
this.parent.requestDisallowInterceptTouchEvent(false);
// etc...
}
return true;
}
答案 1 :(得分:3)
没有直接停止滚动视图滚动的方法,但你可以用其他方式来做 像:
scrollview.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
return !enable;
}
});
当您将enable变量设置为true时,它将开始滚动,当您将其设置为false时,它将停止滚动。