刚来注册博客,在这里住脚。自定义listView下拉刷新
来源:互联网 发布:java简单项目 编辑:程序博客网 时间:2024/05/17 02:27
对于csdn刚认识,新人在此报道下,留下自己的轨迹
import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.widget.ImageView;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.TextView;
public class CustomListView extends ListView{View viewHeader; private static int state_done=1; private static int state_pull=2; private static int state_release=3; private static int state_refreshing=4; int currentState; int height; int downY; TextView stState; ImageView ivArrow; ProgressBar progressBar; public CustomListView(Context context, AttributeSet attrs) { super(context, attrs); currentState=state_done; viewHeader = View.inflate(context, R.layout.listview_header, null); ivArrow = (ImageView) viewHeader.findViewById(R.id.iv_arrow); stState = (TextView) viewHeader.findViewById(R.id.tv_state); progressBar = (ProgressBar) viewHeader.findViewById(R.id.progressBar); this.addHeaderView(viewHeader); viewHeader.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED); // height=view.viewHeader.getHeight(); 必须先测量,才能用getMeasuredHeight 方法 // UNSPECIFIED : 测量方式是不指定的 height=viewHeader.getMeasuredHeight(); viewHeader.setPadding(0,-height,0,0); } @Override public boolean onTouchEvent(MotionEvent ev) { try{ int action=ev.getAction(); switch (action){ case MotionEvent.ACTION_DOWN: if(currentState==state_done){ currentState=state_pull; downY= (int) ev.getY(); } break; case MotionEvent.ACTION_MOVE: if(currentState==state_pull){ int moveY= (int) ev.getY(); if(moveY-downY>height){ currentState=state_release; stState.setText("松开刷新"); } moveY=moveY-height-downY; Log.i("下来刷新","moveY"+moveY); viewHeader.setPadding(0,moveY,0,0); } break; case MotionEvent.ACTION_UP: if(currentState==state_release){ stState.setText("正在刷新"); ivArrow.setVisibility(GONE); progressBar.setVisibility(View.VISIBLE); // 调用接口 if(onRefreshingListener!=null){ onRefreshingListener.onRefreshing(this); } } break; } }catch (Exception e){ e.printStackTrace(); }finally{ } return super.onTouchEvent(ev); } public void setOnRefreshingListener(OnRefreshingListener onRefreshingListener){ this.onRefreshingListener=onRefreshingListener; } // 2.申明接口 OnRefreshingListener onRefreshingListener; // 1. 定义接口 interface OnRefreshingListener{ void onRefreshing(CustomListView customListView); } public void completeRefresh(){ currentState=state_done; stState.setText("下拉刷新"); ivArrow.setVisibility(VISIBLE); progressBar.setVisibility(GONE); viewHeader.setPadding(0,-height,0,0); }}
0 0
- 刚来注册博客,在这里住脚。自定义listView下拉刷新
- 自定义ListView,下拉刷新
- 自定义下拉刷新ListView
- 自定义listView下拉刷新
- 自定义listview下拉刷新
- 自定义下拉刷新listview
- 自定义ListView实现下拉刷新
- 自定义ListView实现下拉刷新
- 自定义下拉刷新的listview
- 刚来这里
- 自定义组件,下拉刷新的ListView
- 自定义的下拉刷新的listview
- 自定义ListView实现下拉刷新功能
- Android : 自定义下拉刷新的ListView
- android 自定义listview实现下拉刷新(一)
- 继承ListView,自定义下拉刷新功能
- 自定义listview实现下拉刷新的效果
- 下拉刷新ListView讲解,自定义PullToRefreshListView
- Redis高可用-Cluster-测试
- Android SlidingMenu 使用详解
- css中的盒子模型
- Activity生命周期笔记
- Java编程手册-Collection框架(上)
- 刚来注册博客,在这里住脚。自定义listView下拉刷新
- ssm框架资料
- mysql忽略主键冲突、避免重复插入的几种方式
- Fatal error: Call to undefined function mysql_connect() in F:\急求解决方法
- [leetcode-335]Self Crossing(java)
- Codeforces 658A B C || VK Cup 2016 - Round 1 (Div. 2 Edition) A B C题解
- Zhejiang university----Hello World for U
- 冒泡排序
- git 三板斧