安卓-Android开发ListView嵌套GridView,如何更加优化

问题描述

Android开发ListView嵌套GridView,如何更加优化

我在ListView中嵌套GridView,效果实现了,但我在ListView的getView()中是
new GridViewAdapter(``````),也就是说我每一个大的ListView的Item都有去new
一个GridView的适配器,这样对内存不好。可我想通过notifyDataSetChanged()来
改变嵌套的GridView中的数据,一直实现不了。。。求高手解答···

解决方案

用viewhoder,重用converview,holder中可以保存adapter等信息,不要每次都new

解决方案二:

重写ListView、gridView(推荐):

public class MyListView extends ListView {

public MyListView(Context context) {
    // TODO Auto-generated method stub
    super(context);
}  

public MyListView(Context context, AttributeSet attrs) {
    // TODO Auto-generated method stub
    super(context, attrs);
}  

public MyListView(Context context, AttributeSet attrs, int defStyle) {
    // TODO Auto-generated method stub
    super(context, attrs, defStyle);
}  

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    // TODO Auto-generated method stub
    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
            MeasureSpec.AT_MOST);
    super.onMeasure(widthMeasureSpec, expandSpec);
}

}

/**

  • 自定义gridview,解决ListView中嵌套gridview显示不正常的问题(1行半)
  • @author wangyx
  • @version 1.0.0 2012-9-14
    */

    public class MyGridView extends GridView{

    public MyGridView(Context context, AttributeSet attrs) {

    super(context, attrs);

    }

    public MyGridView(Context context) {
        super(context);
    }   
    
    public MyGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }   
    
    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   
    
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
    

    }

解决方案三:

这样实现的效果就是一个横向的listview,你找找HorizontalListView,或者试试 gallery能不能实现你要的效果

时间: 2024-10-30 19:51:25

安卓-Android开发ListView嵌套GridView,如何更加优化的相关文章

关于Android中ListView嵌套GridView的问题_Android

问题 在Android开发中,遇到一个问题,是ListView嵌套GridView,需要点击整个ListView的Item进行跳转.但是在点击GridView区域时无法进行页面的跳转.这是因为GridView获得了焦点.导致点击无法跳转. 解决方法就是: 1.在Item最外层加上 android:descendantFocusability="blocksDescendants" 2.在Adapter中添加 holder.mGridView.setClickable(false); h

Android开发-ScrollView嵌套GridView的解决办法

前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 解决办法,自定义一个GridView控件 public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Con

Android开发中ListView嵌套GridView问题详解

开发中,遇到一个问题,是ListView嵌套GridView,需要点击整个ListView的Item进行跳转.但是在点击GridView区域时无法进行页面的跳转.这是因为GridView获得了焦点.导致点击无法跳转. 解决方法就是: 1.在Item最外层加上 android:descendantFocusability="blocksDescendants" 2.在Adapter中添加 holder.mGridView.setClickable(false); holder.mGrid

图片- Android ListView嵌套GridView点击事件的分发!!!!

问题描述 Android ListView嵌套GridView点击事件的分发!!!! 现在我在实现一个类似朋友圈的功能,布局需要用到ListView嵌套GridView.我也知道这样用不是太好,但这样能够实现需求所以就这样写了.如果哪位有更好的替换的方法,还请赐教.例如:我现在每行显示三张图片,但现在只有一张图片,所以就会有两张图片的位置会空出来.我为了要实现点击图片还能够看大图设置了GridView的onitemclick事件.问题来了,当我点击空白部分的时候,结果还是触发了GridView的

Android ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

ScrollView 效果 ScrollView 说明 一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo. 主要是重写了GridView和LsitView中的onMeasure 方法. 写的比较简单,希望对初学者有帮助. /*** * 主要思路是 * ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新. * * 逻辑在适配器做了处理 * * 我们只让ListView加载2个数据Item,第一个是item对

Android仿贴吧内容下的简单ListView嵌套GridView

ListView嵌套GridView的简单实例 我的项目想实现一个listview里面的每个item都嵌套一个GridView,顶部还有主题等内容,如 总所周知,关于ListView嵌套GridView,最主要问题莫过于嵌套状态下滑动冲突问题,具体怎么解决,喜欢冗长无注释的代码的,请点击这里这篇文章跟其他的都大同小异了,不过在缺少注释的情况下,我发现了一点点小问题: /** * 创建日期:2017/3/21. * 说明:构造方法会根据你的SDK最低版本不同而要求不同,如18的至少必须重写前 *

Android中ScrollView嵌套GridView的解决办法

前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 找到大家的通用解决办法.记录一下. 解决办法,自定义一个GridView控件 public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } pub

ListView嵌套GridView使用详解

MainActivity如下: package cn.testlistviewandgridview; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; /** * Demo描述: * ListView嵌套GridView使用详解 * 即ListView的每个Item

ListView嵌套GridView使用详解及注意事项_Android

MainActivity如下: 复制代码 代码如下: package cn.testlistviewandgridview; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; /** * Demo描述: * ListView嵌套GridView使用详解 * 即List