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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容