SwipeRefreshListView
来源:互联网 发布:淘宝卖玉的哪家好 编辑:程序博客网 时间:2024/06/14 01:35
通常我们只对ListView进行刷新与加载更多,而google自带的SwipeRefreshLayout刷新控件相当于一个容器,本文记录将SwipeRefreshLayout与ListView进行封装。
public class SwipeRefreshListViewextends SwipeRefreshLayout implements
OnScrollListener, OnItemClickListener { private ListView listView; private LinearLayout loadMoreLayout;// FooterView布局 private LoadMoreListener loadMoreListener; private ItemClickListener itemClickListener; public SwipeRefreshListView(Context context) { super(context); listView = new ListView(context); initView(context); } public SwipeRefreshListView(Context context, AttributeSet attrs) { super(context, attrs); listView = new ListView(context, attrs); initView(context); } /** * * @description 设置加载更多监听 * @param loadMoreListener */ public void setLoadMoreListener(LoadMoreListenerloadMoreListener) { this.loadMoreListener= loadMoreListener; } /** * * @description 设置点击监听 * @param itemClickListener */ public void setItemClickListener(ItemClickListeneritemClickListener) { this.itemClickListener= itemClickListener; } /** * * @description 初始化界�? * @param context */ private void initView(Contextcontext) { listView.setId(android.R.id.list);//给这个listview添加�?个默认的id listView.setDivider(null); listView.setDividerHeight(0); listView.setSelector(newColorDrawable(Color.TRANSPARENT)); listView.setOnScrollListener(this); listView.setOnItemClickListener(this); this.addView(listView); // 加载更多 loadMoreLayout = (LinearLayout)LayoutInflater.from(context).inflate( R.layout.layout_load_more,null); listView.addFooterView(loadMoreLayout); loadMoreLayout.setVisibility(View.GONE); // 设置刷新颜色 setColorSchemeResources(R.color.refresh_color1,R.color.refresh_color2, R.color.refresh_color3,R.color.refresh_color4); } /** * * @description 设置适配�? * @param adapter */ public void setAdapter(BaseAdapteradapter) { listView.setAdapter(adapter); } @Override public void setRefreshing(booleanrefreshing) { if (!refreshing&& null != loadMoreLayout) { loadMoreLayout.setVisibility(View.GONE); } super.setRefreshing(refreshing); } /** * * @description 是否显示加载更多 * @param visible */ public void setFooterViewVisible(intvisible) { loadMoreLayout.setVisibility(visible); } @Override public void onScrollStateChanged(AbsListViewview, int scrollState) { } @Override public void onScroll(AbsListViewview, int firstVisibleItem, int visibleItemCount, inttotalItemCount) { // 滚动至底�? if (firstVisibleItem!=0&& view.getLastVisiblePosition()== view.getCount()- 1) { loadMoreLayout.setVisibility(View.VISIBLE); loadMoreListener.loadMore(); } } @Override public void onItemClick(AdapterView<?>parent, View view, int position, long id) { if(itemClickListener!=null){ itemClickListener.itemClick(position); } } public interface LoadMoreListener { public void loadMore(); } public interface ItemClickListener { public void itemClick(intposition); }
0 0
- SwipeRefreshListView
- Android之---SwipeRefreshListview(Google原生态下拉刷新)
- Error inflating class com.jd.jrapp.widget.swiperefresh.SwipeRefreshListview
- 新建cocos2dx开发遇到问题及解决办法
- 创建文件,并格式化输出最后修改时间
- 数据库优化-基准测试(二)
- 三种快速排序以及快速排序的优化
- C语言实现顺序栈的括号匹配
- SwipeRefreshListView
- 5种PHP创建数组的方式,你都了解哪些?
- MAC上安装node-canvas
- 第十章:单词出现次数程序
- VS2012导入COCOSx-2d 3.6项目的过程总结
- python装饰器
- 实现jquery EasyUI tabs选项卡关闭图标后加载自定义事件
- Java连接MySQL数据库
- 提取IP 地址(算法)