Activity里放了好几个GridView,导致页面很高,所以需要用SrollView进行滑动,这个时候问题出来了。首先是编译器给出了警告:The vertically scrolling ScrollView should not contain another vertically scrolling widget (GridView),意思就是在ScrollView中不能嵌套具有滑动特性的View,系统无法判断该哪个控件获取滚动焦点,会导致GridView无法滑动,高度显示也有问题。
package com.test.demoandroidtest;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListView;
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_MOVE) {
return true;
}
return super.dispatchTouchEvent(ev);
}
}