HorizontalListView中使用notifyDataSetChanged()和notifyDataSetInvalidated()

今天在项目中用到了水平ListView控件HorizontalListView,也是我在网上找的个开源HorizontalListView直接在项目中使用。我是把HorizontalListView放在了可以切换的Tab页面中的,在使用的时候发现了一个小问题:在切换TAB页时,更新对应的adapter数据时,调用adapter的notifyDataSetChanged()方法发现达不到想要的效果,后来在网上查了下,才知道:

横向listview中notifyDataSetInvalidated()和notifyDataSetChanged()的用法刚好和竖着的listview相反,notifyDataSetInvalidated()这个方法会重新刷新listview的界面,而 notifyDataSetChanged()这个至更改界面。

所以在我点击TAB切换时,要更新数据的时候,调用了adapter.notifyDataSetInvalidated()方法果然实现了想要的效果。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 13:02:05

HorizontalListView中使用notifyDataSetChanged()和notifyDataSetInvalidated()的相关文章

[项目总结]论Android Adapter notifyDataSetChanged与notifyDataSetInvalidated无效原因

最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因. 首先看一下notifyDataSetChanged与notifyDataSetInvalidated的区别 我们可应用粮仓来解释一下,两者的区别. notifyDataSetChanged:粮仓中得粮食少了,或者多了,发送通知. notifyDataSetInvalidated:粮仓变换了,比如原来从A仓取粮食,现在换

android ListView中使用notifyDataSetChanged()不刷新

private List<Navi> mRouteList; 1. 设置Adapter private void initData() { mRouteList = new ArrayList<Route>(); mRouteList.clear(); mAdapter = new CarRouteAdapter(getActivity(), mRouteList); mListView.setAdapter(mAdapter); } 2. 获取数据,刷新listview priv

Android中ViewPager与HorizontalListView的滑动冲突处理

Android开发中,有不少的控件都有点击或滑动冲突事件,比如ListView的onitemclick事件与item上的Button(如果有Button的话)等.今天在工作中用ViewPager里面的页面套用HorizontalListView,横向 划动也有冲突,解决办法很简单,只要在HorizontalListView中重写onInterceptTouchEvent(MotionEvent ev)方法中添加 getParent().requestDisallowInterceptTouchE

【Android】14.3 浏览手机中的所有文件夹和文件

分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 前面我们了解了内部存储.外部存储的含义,用一句话说,内部存储实际上是保存在"data"文件夹下,外部存储(SD卡)实际是保存在"sdcard"或者"storage"文件夹下. 这个例子演示如何将这些内部存储和外部存储的文件夹及其子文件架下的文件全部显示出来,类似于树形结构一层一层地向下看(例子没有实现返回上层的功能,或者说,仅仅实现了Android自带的文件浏览

FragmentPagerAdapter.notifyDataSetChanged()不能更新问题?

在一个 Android 应用中,我使用  FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有些

android edittext+listview进阶 实现搜索listview中的内容 定制自己的过滤器

上一次直接使用的是arrayadapter 以及 系统自带的simple_list1布局文件.但是开发中,我们基本是不会用到那么简单的cell的,下面就来说说如何定制自己的过滤器,让他想搜索什么内容就搜索什么内容 效果图: listview_cell布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.c

【转】为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?

为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment? 转自:http://www.apkbus.com/android-90417-1-1.html aitian 发表于 2013-1-4 17:31:57 浏览(386111) 在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改

为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?

在一个 Android 应用中,我使用 FragmentPagerAdapter 来 处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有些

横向滑动的HorizontalListView滑动指定位置的解决方法

项目中用到了自定义横向滑动的控件:HorizontalListView,点击其中一项,跳转到另外一个大图界面,大图界面也是HorizontalListView,想使用setSelection方法设定 项目中用到了自定义横向滑动的控件:HorizontalListView,点击其中一项,跳转到另外一个大图界面,大图界面也是HorizontalListView,想使用setSelection方法设定到点击的位置,却发现这个开源的代码没有实现这个方法.解决方法如下: 1.HorizontalListV