Android ListView中嵌套GridView,GridView不显示
来源:互联网 发布:淘宝描述不符有赔偿吗 编辑:程序博客网 时间:2024/06/06 01:52
记得这个问题是之前也有见过的,不过一直发现不了问题。今天突然有了一种必须必须必须要处理掉它的决心,通过网上查看,还是没有一篇文章有出现这种情况的,而是gridview显示不全的问题。而我的问题是gridview全部不显示。
出现这种情况,个人分析觉得就三种情况:
- 布局 (继承NoScrollGridView)
- 适配器 (是否实现各个方法所需的)
- 数据设置 (刷新、不小心clear掉了、数据对象的赋值)
推敲问题:
- 首先确定自定义的MyGridView是继承NoScrollGridView
- 然后看适配器是否正确的实现了各个方法
- 再给布局中给MyGridView设置固定的高度
- 如果还有显示的话,那就可能数据设置问题
- 查找发现,原来是低级错误,也可能是我们java基础的问题
先附上自己定义的错误适配器MyGridAdapter
public class MyGridAdapter extends BaseAdapter { private Context mContext; private List<GridItem> mItems = new ArrayList<>(); public MyGridAdapter(Context context) { mContext = context; } @Override public int getCount() { return mItems.size(); } @Override public GridItem getItem(int position) { if (mItems.size() > 0) { return mItems.get(position); } return new GridItem(); } public List<GridItem> getItems() { return mItems; } @Override public long getItemId(int position) { return position; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ...... return view; } public void targetClick(int position) { targetClick(getItem(position)); } public void targetClick(GridItem item) { } public void setItems(List<GridItem> items) { this.mItems.clear(); if (items != null) { addItems(items); } notifyDataSetChanged(); } private void addItems(List<GridItem> items) { this.mItems = items; } public Context getContext() { return mContext; }}
不要纠结上面GridItem类跟getView(..)方法的实现,因为这些都是相信你们都懂吧,这些都不是我要特别介绍的,而是想说的是addItems()方法,大家看错了什么问题了吗?
举个例子:
ArrayList<String> A= new ArrayList<String>(); A.add("1"); A.add("2"); ArrayList<String> B; B = A;
此时B对象相当与A对象的引用,而并不是将A对象的值单纯的传递给B对象。
即:B对象的操作将直接改变A对象。如B.add(“3”);结果A中也包含了“3”
看到这里你应该明白怎么回事了吧。原来我的addItems中只是拿到了对象的引用,而没有真正的把值传递给mItems对象,所以就出现了一大乌龙——为什么gridview老是不显示的问题。
解决方式:
private void addItems(List<GridItem> items) { for (GridItem item : items) { this.mItems.add(item); }}
阅读全文
0 0
- Android ListView中嵌套GridView,GridView不显示
- android ScrollVIew中嵌套GridView,和ListView显示不全解决方法
- Android ScrollView中嵌套ListView和GridView显示不全解决方案
- Android gridview 嵌套在listview中显示不全问题
- android中ListView嵌套GridView图片显示的问题
- Android 解决scrollview中嵌套listview、GridView显示不完全问题
- android中ListView嵌套GridView,或者ScrollView嵌套GridView
- android ListView嵌套GridView显示不全问题
- android ListView嵌套GridView显示不全问题
- Android 解决ListView嵌套GridView、GridView显示不正常的方法
- ListView中嵌套GridView关于GridView的高度显示问题
- listView 嵌套gridView android
- ListView 中嵌套 GridView
- ListView中嵌套gridview
- listview中嵌套gridview
- Android ScrollView中嵌套GridView,ListView
- ListView嵌套GridView,Gridview不能完全显示
- ListView内嵌套GridView,GridView显示不全
- Leetcode 561:Array Partition I
- nhmicro添加产品中心功能
- Python的列表排序
- Vertica 分页查询
- Java 子类调用父类构造函数----super()详解
- Android ListView中嵌套GridView,GridView不显示
- POJ2996 & POJ2993 (模拟)
- Git提交报错git-upload-pack
- 快速排序的升序和降序
- js常用的数据判断正则表达式
- Java 基本数据类型
- 用xshell写Linux命令:从一个服务器复制文件到另一个服务器
- 选择排序和插入排序
- 浅析模拟退火