`
切切歆语
  • 浏览: 29421 次
  • 性别: Icon_minigender_1
  • 来自: 泸州市
社区版块
存档分类
最新评论

Android自定义控件之ListView的下拉刷新与上拉加载

阅读更多

 开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,为了方便重写的ListView来实现下拉刷新,同时添加了上拉自动加载更多的功能。

 

Android下拉刷新可以分为两种情况:

 

1.获取更多的数据,按服务器数据库时间顺序存储入情况,此刻我们是获取是显示在我们应用中的数据更早前的数据,这也是最常见的情况。比如(微博获取更多信息,就是获取更多更早前的信息,然后动态的添加到已有的数据的下方);

2.获取更多的最新的数据,其实还是一种获取更多的操作方式。但是这里主要考虑到用户的操作习惯了。一般,用户的操作习惯分这么两种。

 

示例代码

public class MainActivity extends Activity implements IXListViewListener {

	private XListView listView;
	private int in = 6;
	private Adapter adapter;
	private Handler mHandler;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();

	}

	private void initView() {
		// TODO Auto-generated method stub
		listView = (XListView) findViewById(R.id.list);
		listView.setPullLoadEnable(true);
		adapter = new Adapter(MainActivity.this);
		listView.setAdapter(adapter);
		listView.setXListViewListener(this);
		mHandler = new Handler();

	}

	private void onLoad() {
		listView.stopRefresh();
		listView.stopLoadMore();
		listView.setRefreshTime("刚刚");
	}

	@Override
	public void onRefresh() {
		mHandler.postDelayed(new Runnable() {
			@Override
			public void run() {
				onLoad();
			}
		}, 2000);
	}

	@Override
	public void onLoadMore() {
		mHandler.postDelayed(new Runnable() {
			@Override
			public void run() {
				in += 4;
				onLoad();
			}
		}, 2000);
	}

	private static String[] string = new String[] { "民政局于,请带好相关证件文书 ",
			"财政部发布公告,由于资金调整信息未完善,下周在发放工资,请各位见谅",
			"信息部门于2016-11-11日在某某地方开会,特此通知,请带好相关证件",
			"党政办发放通知,有关贫困地区扶贫政策,希望每个部门做出相应的方案,于2016-11-11开会讨论" };

	public class Adapter extends BaseAdapter {

		private Context context;
		private LayoutInflater inflater;

		public Adapter(Context context) {
			// TODO Auto-generated constructor stub
			this.context = context;
			inflater = LayoutInflater.from(context);
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return in;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			ViewHolder holder = null;
			final int index = position;
			if (convertView == null) {
				convertView = inflater.inflate(R.layout.item_news_mass, null);
				holder = new ViewHolder(convertView);
				convertView.setTag(holder);
			} else {
				holder = (ViewHolder) convertView.getTag();
			}
			holder.mName.setText(string[(position % 4)]);

			return convertView;
		}

		class ViewHolder {
			private ImageView mImageView;
			private TextView mName;

			public ViewHolder(View view) {
				mName = (TextView) view.findViewById(R.id.item_news_msg);

			}
		}

	}
}

 

 

 <com.example.pullablerefresh.XListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="#FFFFFF"
        android:cacheColorHint="#00000000"
        android:divider="#FFFFFF"
        android:dividerHeight="5dp"
        android:drawSelectorOnTop="false"
        android:listSelector="#00000000"
        android:scrollbars="none"
        android:scrollingCache="false" />

 由于代码太多,完整代码未给出,源码直接下载即可

 

源码点击下载

 

分享到:
评论

相关推荐

    Android ListView 下拉刷新、上拉加载

    4. 性能优化:对于大数据量的列表,可以使用ViewHolder模式减少视图复用的开销,或者使用ListView的HeaderView和FooterView来实现下拉刷新和上拉加载的界面。 总结,下拉刷新和上拉加载是Android应用中常见的功能,...

    自定义listview下拉刷新上拉加载更多以及与google官方的下拉刷新结合使用

    总的来说,自定义ListView下拉刷新和上拉加载更多虽然涉及到一些复杂的交互逻辑,但通过合理的设计和第三方库,可以大大简化开发过程。在实际项目中,可以根据需求选择自定义实现或者利用已有的解决方案,以提供更好...

    Android自定义上拉加载下拉刷新控件

    本示例“Android自定义上拉加载下拉刷新控件”提供了一个基于Android Studio的DEMO,帮助开发者理解并实现这一功能。 首先,我们来看下拉刷新(Pull-to-Refresh)功能。这是在用户滚动到列表顶部时,可以通过下拉...

    Android自定义控件下拉刷新上拉加载,所有View通用.(直接拿来用)

    Android自定义控件下拉刷新上拉加载,所有View通用.(直接拿来用).实现了ListView、GridView、ExpandableListView、ScrollView、WebView、ImageView、TextView的下拉刷新和上拉加载

    自定义 ListView 添加下拉刷新和上拉加载

    本篇将详细介绍如何实现自定义ListView,添加下拉刷新和上拉加载功能。 首先,我们要理解下拉刷新和上拉加载的概念。下拉刷新(Pull-to-Refresh)是指用户在顶部滑动ListView时,如果达到一定距离,会触发刷新操作...

    自定义listview下拉刷新上拉加载更多以及google官方的下拉刷新

    一、自定义ListView下拉刷新与上拉加载更多 1. 下拉刷新机制:下拉刷新允许用户通过向下滑动ListView来更新数据。在自定义过程中,我们需要监听用户的滑动手势,当达到一定阈值时触发刷新操作。这通常涉及以下步骤...

    Android Listview下拉刷新上拉加载源码

    "Android Listview下拉刷新上拉加载源码"这个资源可能包含了实现这些功能的具体代码示例。 下拉刷新功能允许用户通过手势向下拉动ListView的顶部来更新列表内容,通常用于获取最新数据。这种功能的实现通常依赖于第...

    android自定义ListView控件实现下拉刷新

    在实现过程中,可以参考现有的开源库,如SwipeRefreshLayout,它提供了更完善的下拉刷新和上拉加载更多的功能。不过,自定义实现可以帮助我们更好地理解和控制刷新过程,也可以根据需求进行定制。 在`...

    Android之ListView下拉刷新和上拉加载实现详解(含源码Demo)

    总的来说,Android的下拉刷新和上拉加载是提高用户体验的关键特性,通过结合SwipeRefreshLayout和自定义LoadMoreView,开发者可以轻松地为ListView添加这些功能。同时,了解和研究源码可以帮助我们更好地理解和定制...

    Android自定义控件开发实战之实现ListView下拉刷新实例代码

    总之,实现Android ListView的下拉刷新功能涉及到自定义控件设计、视图动画以及与ListView的事件交互。通过上述步骤,我们可以创建一个具备下拉刷新功能的ListView,提供更加友好的用户体验。在实际项目中,还可以...

    android控件应用 自定义的ListView控件,下拉刷新上拉加载更多

    综上所述,自定义的ListView控件结合下拉刷新和上拉加载更多功能,可以创建出强大的数据展示组件。在实际项目中,开发者可以根据需求调整这些功能,实现更丰富的交互体验。PullDownDemo可能是一个完整的示例项目,...

    android ListView GridView ScrollView 下拉刷新与上拉加载

    本篇文章将深入探讨如何在这些控件中实现下拉刷新和上拉加载的功能,以便提供更好的用户体验。 首先,ListView是显示大量数据的列表视图,适合于行数可变且每行数据结构相同的情况。GridView则是展示二维网格数据,...

    再也不用担心下拉刷新,上拉加载啦!-自定义ListView对上拉刷新,上拉加载的详解

    要实现自定义ListView的下拉刷新和上拉加载,我们通常会使用SwipeRefreshLayout和LinearLayoutManager这两个组件。SwipeRefreshLayout是Android提供的一个用于添加下拉刷新功能的容器,它可以包裹ListView或者...

    android Listview下拉刷新 上拉(滑动分页)加载更多

    总之,下拉刷新和上拉加载更多是提升Android应用用户体验的关键特性,通过合理使用开源库和自定义事件监听,可以轻松地在ListView中实现这些功能。开发者可以根据项目需求选择合适的库,或者自定义实现,以满足各种...

    android listview下拉刷新上拉加载更多改良版

    总的来说,“android listview下拉刷新上拉加载更多改良版”是为了提供更优秀的用户体验而对原生ListView的扩展,它结合了第三方库和自定义视图,使得开发者可以更便捷地在应用中实现这两个功能。通过深入理解这一...

    Android listview 下拉刷新和下拉刷新及加载更多

    综上所述,Android ListView的下拉刷新和上拉加载更多功能是现代移动应用中不可或缺的组件,它们提升了用户体验,使得数据更新和加载更加便捷。开发者可以通过多种方式实现这些功能,但需要注意性能优化和用户体验的...

    基于 Android 的 BGARefreshLayout 下拉刷新与上拉加载更多组件.zip

    基于 Android 的 BGARefreshLayout 下拉刷新与上拉加载更多组件 项目简介 BGARefreshLayout 是一个基于 Android 平台的下拉刷新与上拉加载更多组件。它支持多种下拉刷新效果和上拉加载更多效果,并且允许开发者...

    Android应用源码之listView下拉刷新上拉刷新带阻尼效果_上拉.zip

    "Android应用源码之listView下拉刷新上拉刷新带阻尼效果_上拉.zip"这个压缩包文件提供了一个实现这一功能的源码示例,主要涉及到以下几个关键知识点: 1. **下拉刷新(Pull-to-Refresh)**:这是一种常见的用户交互...

    安卓ListView 下拉刷新。上拉加载更多

    2. **上拉加载更多**:与下拉刷新类似,上拉加载更多通常需要自定义ListView的滚动监听器或者使用诸如LoadMoreFooter之类的组件。当用户滚动到底部时,我们触发加载更多数据的逻辑。这可能涉及到向服务器发送请求,...

Global site tag (gtag.js) - Google Analytics