listview中包含gridview

android' listview包含gridview,gridview中单项选择并保存选择过得状态图片

7个回答

取消GridView的滑动就好了

gyymz1992
gyymz1992 肯定不行的
大约 3 年之前 回复
gyymz1992
gyymz1992 点错了直接采纳了
大约 3 年之前 回复

有人吗回答这个问题吗

把ListView换成SrcollView试试,
然后你说的,
GridView中Item的点击事件!
点后改变Button状态,然后将信息参数  总和在一起?

(把GirdleView高度设为wrap_contect,应该就不会出现滚动吧)
不知道有没有说道重点,问题不是很清楚

用RecyclerView嵌套RecycleView, 第一个RecycleView实现两个界面布局样式,内容recycleView用gridLayoutmanager布局

listview包含gridview,要想让GridView的内容都展示出来,就得让重写GridView的onMeasure方法,如下:

  public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)  {  
                int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,  
                                MeasureSpec.AT_MOST);  
                super.onMeasure(widthMeasureSpec, expandSpec);  

 }  

你的结构是ListView--->gridView
你可以用个Point point= new Point(x,y)
x我listView的第几个Item y为gridView的第几个item
用一个LinkedList来保存所以点击的点

点击记录add就去,再点下就判断这个坐标在这集合中是否存在和它位置相同的,有就移除


一个RecyclerView就可以解决:
思路如下:
1.选用GridLayoutManager模式
2.动态计算每一行item显示的宽度

  GridLayoutManager manager = new GridLayoutManager(x.app(), 17);
        manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
//                浊音需要特殊处理
                if (type == 1) {
                    if (position == 0 || position == 25) {
                        return 17;
                    } else if (position == 31) {
                        return 3;
                    } else if ((position - 1) % spanCount == 0 || position == 26) {
                        return 2;
                    } else {
                        return 3;
                    }
                }
                if (position % spanCount == 0) {
                    return 2;
                } else {
                    return spanCount == 4 ? 5 : 3;
                }
            }
        });

然后adapter通过标示加载不同的item即可
3.已经通过这样的方式实现如下需求
图片说明

这样是效率最高的做法,其他做法当数据量大时都会有不同程度的卡顿

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!