android' listview包含gridview,gridview中单项选择并保存选择过得状态
取消GridView的滑动就好了
有人吗回答这个问题吗
把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.已经通过这样的方式实现如下需求
这样是效率最高的做法,其他做法当数据量大时都会有不同程度的卡顿