Listview的getView调用比getCount少
2016-03-04 09:59
106 查看
【关键代码】
@Override
public int getCount()
{
int nofityMsgSize = nofityMsgList==null?0:nofityMsgList.size();
logger.d("NotifyMessageAdapter#getCount:%d",nofityMsgSize);
return nofityMsgSize;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
logger.d("NotifyMessageAdapter#getView#position:%d",position);
View view = null;
view = renderNofityMsg(position,convertView,parent);
return view;
}
public void pushItem(NotifyMsgEntity msg)
{
logger.d("NotifyMessageActivity#pushList msgInfo:%s", msg);
adapter.addItem(msg);
adapter.notifyDataSetChanged();
}
【问题描述】
在nofityMsgList里最初存储的数据有2条,数据内容分别为0和1,在界面显示为0和1。
调用pushItem后,增加一条新数据,数据内容为2。
nofityMsgList中的数据增加至3条。
getCount返回的值为3。
可是getView却只被调用2次,界面显示分别为1和2(0不显示)。
如果再次调用pushItem,增加一条新数据,数据内容为3,则getView仍然只被调用2次,界面显示分别为2和3(0和1不显示)。
【解决方法】
将Listview的上一级布局的高度设置为:android:layout_height="match_parent"。
@Override
public int getCount()
{
int nofityMsgSize = nofityMsgList==null?0:nofityMsgList.size();
logger.d("NotifyMessageAdapter#getCount:%d",nofityMsgSize);
return nofityMsgSize;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
logger.d("NotifyMessageAdapter#getView#position:%d",position);
View view = null;
view = renderNofityMsg(position,convertView,parent);
return view;
}
public void pushItem(NotifyMsgEntity msg)
{
logger.d("NotifyMessageActivity#pushList msgInfo:%s", msg);
adapter.addItem(msg);
adapter.notifyDataSetChanged();
}
【问题描述】
在nofityMsgList里最初存储的数据有2条,数据内容分别为0和1,在界面显示为0和1。
调用pushItem后,增加一条新数据,数据内容为2。
nofityMsgList中的数据增加至3条。
getCount返回的值为3。
可是getView却只被调用2次,界面显示分别为1和2(0不显示)。
如果再次调用pushItem,增加一条新数据,数据内容为3,则getView仍然只被调用2次,界面显示分别为2和3(0和1不显示)。
【解决方法】
将Listview的上一级布局的高度设置为:android:layout_height="match_parent"。
相关文章推荐
- 一个ios工程师必须具备的八大知识技能点
- HTML文本格式化实例
- web交互方式
- MVC中AuthorizeAttribute用法并实现权限控制
- 仿站步骤
- window安装PHP的redis扩展
- document.domain 跨域问题
- 实例说明get_cfg_var()和ini_get()…
- PHP开源框架Yaf安装(Windows&nbsp…
- PHP的线程安全ZTS与非线程(NTS)安…
- 解决linux启动时无法进入命令行问…
- 小白谈memcache和memcached的区别
- Linux下php安装Redis扩展
- linux下svn客户端安装及环境配置
- redis运行后的一些警告
- Linux中将memcached注册为系统服务
- Linux安装Memcached服务及php&nbsp…
- js 前加分号和感叹号是什么意思?
- nginx/windows: nginx多虚拟…
- mysql,mysqli,PDO的各自不同介绍