`
zdphpn
  • 浏览: 11507 次
  • 性别: Icon_minigender_1
  • 来自: 邯郸市
社区版块
存档分类
最新评论
阅读更多
        实现了显示的效果,接着来实现一些监听器(接口),下拉刷新、上拉加载、Item划出屏幕(之后会用到)等监听器(接口),定义两个接口:
public interface QRecyclerListener{
	void onMovedToScrapHeap(View view);//Item划出屏幕回调函数
}
public void setQRecyclerListener(QRecyclerListener listener){//设置
	this.rclistener=listener;
}
	
public interface QPullListener{
	void onRefresh();//下拉刷新回调函数
	void onLoad();//上拉加载回调函数
}
public void setQPullListener(QPullListener listener){//设置
	this.pulllistener=listener;
}

        只需在需要的地方调用pulllistener.onRefresh();(或其他),如上节触摸事件中调用下拉刷新。
        上拉加载则是当页面滑动时,判断是否快要到达页面结束,并调用pulllistener.onLoad();,为此CListView需要实现OnScrollListener接口,并实现其方法。

        实现OnScrollListener接口

private class CListView extends ListView implements OnScrollListener


        实现两个方法
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
	// TODO Auto-generated method stub
	if(firstVisibleItem+visibleItemCount>=totalItemCount&&!isLoad&&pulllistener!=null){
		pulllistener.onLoad();
		isLoad=true;//是否正在加载的一个标志
	}
}
		
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
	// TODO Auto-generated method stub
	
}

        Item划出屏幕的接口,实现RecyclerListener接口
private class CListView extends ListView implements OnScrollListener, RecyclerListener

        实现一个方法
@Override
public void onMovedToScrapHeap(View view) {
	// TODO Auto-generated method stub
	if(rclistener!=null&&getFirstVisiblePosition()>1){
		rclistener.onMovedToScrapHeap(view);
	}
}


        添加刷新完成、加载完成,恢复初始状态的函数
public void completeRefresh(int state){
	iv_refresh.clearAnimation();//停止动画
	rl_refresh.setPadding(0, -iv_refresh.getHeight(), 0, 0);
	clv_list.isRefresh=false;
}
public void completeLoad(int state){
	clv_list.isLoad=false;
}

        附上变量定义及动画Xml
private ImageView iv_refresh;//刷新提示图标
private RelativeLayout rl_refresh;//图标父布局,通过改变Padding改变图标位置
private Animation anim_rotate;//刷新时的旋转动画
	
private CListView clv_list;//内部定义CListView继承自ListView
private QRecyclerListener rclistener;//内部Item划出屏幕监听器
private QPullListener pulllistener;//刷新加载监听器

        旋转动画
        res/anim下新建动画文件anim_rotate_round.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    	android:fromDegrees="0"
    	android:toDegrees="720"
    	android:duration="1080"
    	android:repeatCount="-1"
    	android:pivotX="50%"  
    	android:pivotY="50%" >
</rotate>


        测试效果ListFragment中
private void initListener(){
	adapter=new ListAdapter(getActivity(),qlv_list);
	qlv_list.setAdapter(adapter);
		
	qlv_list.setQPullListener(qplistener);
}

private QPullListener qplistener=new QPullListener() {
	
	@Override
	public void onRefresh() {
		// TODO Auto-generated method stub
		qlv_list.completeRefresh(0);
		System.out.println("刷新");
	}
		
	@Override
	public void onLoad() {
		// TODO Auto-generated method stub
		qlv_list.completeLoad(0);
		System.out.println("加载");
	};
}


注:懒了,好多图都用的一个,看输出信息是否有相应文字

始终相信——2017/05/16



  • 大小: 1.8 MB
分享到:
评论

相关推荐

    C# 强大的自定义ListView ObjectListViewFull-2.4.1

    本文将深入探讨C#中的自定义ListView以及ObjectListViewFull-2.4.1这个强大的工具。 ObjectListView是一个开源的.NET组件,它扩展了Windows Forms的ListView控件,提供了更多的功能和易用性。这个库的版本2.4.1带来...

    自定义ListView实现下拉刷新+加载更多功能Demo

    在Android开发中,自定义ListView实现下拉刷新和加载更多的功能是常见的需求,尤其是在构建具有数据流滚动和实时更新的应用程序时。这个"自定义ListView实现下拉刷新+加载更多功能Demo"旨在帮助开发者理解如何集成...

    Android中的自定义ListView

    本篇文章将深入探讨如何在Android中使用ListView,以及如何实现自定义ListView。 首先,理解ListView的基本概念至关重要。ListView是一个视图容器,可以动态加载并显示一串可滚动的项目列表。每个列表项通常由一个...

    C# 自定义ListView

    针对这一需求,开发者常常需要自定义ListView,以实现图文并茂的展示效果。 自定义ListView的关键在于扩展ListView的基本功能,增加对图片的支持。这通常涉及到以下几个方面: 1. **Item模板**:通过修改ListView...

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

    本教程将探讨如何自定义ListView实现下拉刷新和上拉加载更多,并将其与Google官方的SwipeRefreshLayout结合使用。 首先,我们要理解下拉刷新和上拉加载更多的基本概念。下拉刷新是指用户在ListView顶部向下拉动时,...

    自定义listview

    自定义ListView可以帮助开发者根据需求实现更复杂、更具个性化的界面。在这个主题中,我们将深入探讨如何设计自定义ListView,包括创建适配器(Adapter)以及解决滑动冲突的问题。 首先,自定义ListView通常涉及到...

    android自定义listview使用方法

    自定义ListView可以实现更丰富的界面效果和交互功能,提升用户体验。本教程将详细讲解如何在Android中实现自定义ListView,包括基本的ListView、带图片的ListView以及带有按钮的ListView。 1. **基本的ListView** ...

    自定义ListView

    自定义ListView是提升用户体验、实现个性化界面的关键步骤。本教程将深入探讨如何在Android中实现自定义ListView,结合源码分析,帮助开发者更好地理解和运用这一核心组件。 首先,自定义ListView主要涉及以下几个...

    完美仿QQ侧滑操作,自定义listview

    自定义的listview来做的,本来的思路是自定义item的根...于是改用自定义listview,结果很喜人,个人觉得比较完美,支持3.0以下, 由于是属性动画需要支持到3.0以下,所以使用了nineoldandroid这个开源的属性动画库。

    1.8 自定义ListView中的行

    `1.8 自定义ListView中的行`这个主题主要涉及如何根据应用需求调整ListView中每一行的显示样式,使其更加个性化和符合用户界面设计。以下将详细介绍这个过程,以及相关的知识点。 首先,自定义ListView的行通常涉及...

    自定义ListView(适配器和布局)

    自定义ListView是开发者经常需要面对的任务,因为默认的ListView可能无法满足所有需求。本文将深入探讨如何通过适配器(Adapter)和自定义布局来实现一个功能丰富的自定义ListView。 一、适配器(Adapter)的理解与...

    Android 自定义ListView(下拉刷新PullToRefreshListView 上拉加载LoadListView)

    Android 自定义ListView,分别实现下拉刷新的ListView及上拉加载的ListView 详情可以参考我的博客 http://blog.csdn.net/sunshanai/article/details/51622917

    TabHost中填充自定义ListView

    在Android开发中,`TabHost` 是一个非常重要的组件,用于实现多标签页面的切换,而将自定义的`ListView`填充到`TabHost`中则可以构建出复杂的交互界面。下面我们将详细探讨如何实现这一功能。 首先,我们需要了解`...

    android 自定义ListView实现单选

    本篇文章将详细探讨如何通过自定义ListView来实现单选功能,旨在帮助开发者解决这一问题。 一、自定义ListView的必要性 系统自带的ListView默认并未提供单选模式,而是多选或全选。当用户需要在列表中选择一个项目...

    安卓listview相关相关-自定义listview继承最新控件.zip

    这个压缩包文件“安卓listview相关相关-自定义listview继承最新控件.zip”显然包含了与自定义ListView相关的资料,以及可能的源码示例。以下是关于自定义ListView及其相关知识点的详细讲解: 1. **ListView基础**:...

    自定义listview的item控件

    当列表中的每一项需要有不同的显示样式或包含不同内容时,我们就需要自定义ListView的Adapter。这个过程涉及到Android的视图复用机制、数据绑定以及事件处理等多个核心知识点。 1. **Adapter原理**: Android的...

    自定义ListView+fragment

    自定义ListView是开发者经常需要面对的任务,因为默认的ListView可能无法满足所有需求。本项目“自定义ListView+Fragment”显然涉及到如何将自定义的ListView与Android的Fragment机制相结合,以实现更灵活、功能丰富...

    Android 自定义listview 轻松实现360软件详情页

    本篇将详细讲解如何通过自定义ListView轻松实现360软件详情页的效果,即ListView滑动到顶部时固定头部视图。 首先,"360软件详情页"的效果通常包含一个固定的头部视图,当用户滚动列表时,头部视图始终保持在屏幕...

    自定义listview实现联系人排序

    它允许用户滚动查看信息,而自定义ListView则是为了满足特定需求,如提供独特的视图样式、交互效果或者复杂的数据处理。本教程将深入探讨如何通过自定义ListView来实现联系人排序功能。 首先,我们需要了解ListView...

Global site tag (gtag.js) - Google Analytics