Android在开发中的实用技巧之ScrollView嵌套ListView、GridView出现的问题解决

根据已上线的app里总结出来的实用小技巧

当ScrollView嵌套ListView或GridView等控件出现的各种问题, 解决的最佳方案
  • ListView或GridView的内容无法全部显示(ListView和GridView用法一样)
    解决方案自定义该控件
public class MyGridView extends GridView {
    public MyGridView(Context context) {
        super(context);
    }

    public MyGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    /**
     * 重写该方法,达到使GridView 适应ScrollView的效果
     */
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
  • 上面问题解决后, 接着就会出现数据加载完页面没有停留在顶部的问题
    解决方案让控件失去焦点
//必须在控件初始化后设置, 也不能写在layout中否则不起作用
gridView.setFocusable(false);

你可能感兴趣的:(Android在开发中的实用技巧之ScrollView嵌套ListView、GridView出现的问题解决)