ScrollView中若嵌套有滑动的控件(如:WebView,ListView或GridView)时,android默认的焦点是在外层的ScrollView上,若要使得焦点在里面的控件(WebView,ListView或GridView)上,那么需要关闭父类ScrollView的焦点,代码如下(以GridView作为例子,其它的一样):
gridView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP {
parentScroll.requestDisallowInterceptTouchEvent(false); // 为false表示父类的焦点可用;
} else {
parentScroll.requestDisallowInterceptTouchEvent(true); // 为true表示父类的焦点不可用;
}
return false;
}
};