Android 当 GridView 遇到 ScrollView (高度错误和顶部问题)
当 GridView 或者 ListView 放到 ScrollView 中时,其实会遇到一个比较奇葩的问题,就是 GridView(ListView) 高度展开的不对,而且会默认最顶部在 GridView(ListView) 的最顶,并不是我们想要的结果,可以通过以下方法解决:
public class ExpandedGridView extends GridView {
public ExpandedGridView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public ExpandedGridView(Context context) {
super(context);
init();
}
public ExpandedGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
//修复位置不在最顶的问题
setFocusable(false);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//修复高度大小问题
int expandSpec = View.MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, View.MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
近期评论