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); } }
近期评论