Android之水滴落下的下拉刷新
来源:互联网 发布:淘宝韩束旗舰店会假吗 编辑:程序博客网 时间:2024/04/29 00:54
Android之水滴落下的下拉刷新
非常逼真的水滴落下的下拉刷新。你可以配合ListView一起使用。
项目library下载地址:源码下载地址
我的demo下载地址(包含异步):水滴落下下拉刷新demo
效果图:
主要是用到一个库:WaveSwipeRefreshLayout
<span style="font-size:18px;"> <jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/main_swipe" android:layout_below="@+id/toolbar" > <ListView android:id="@+id/main_list" android:layout_width="match_parent" android:layout_height="match_parent" /> </jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout></span>
MainActivuty:
<span style="font-size:18px;">package jp.co.recruit_lifestyle.sample;import android.graphics.Color;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.ArrayAdapter;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import jp.co.recruit_lifestyle.android.widget.WaveSwipeRefreshLayout;public class MainActivity extends AppCompatActivity implements WaveSwipeRefreshLayout.OnRefreshListener { private Myadapter myadapter; private String str; private ListView mListview; private WaveSwipeRefreshLayout mWaveSwipeRefreshLayout; private LinkedList<String> list=new LinkedList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setSampleData(); } private void initView() { mWaveSwipeRefreshLayout = (WaveSwipeRefreshLayout) findViewById(R.id.main_swipe); mWaveSwipeRefreshLayout.setColorSchemeColors(Color.WHITE, Color.WHITE); mWaveSwipeRefreshLayout.setOnRefreshListener(this); mWaveSwipeRefreshLayout.setWaveColor(Color.DKGRAY); //mWaveSwipeRefreshLayout.setMaxDropHeight(1300); mListview = (ListView) findViewById(R.id.main_list); } private void setSampleData() { for (int i = 0; i < 60; i++) { list.add("你好" ); } myadapter=new Myadapter(list); mListview.setAdapter(myadapter); } class Myadapter extends BaseAdapter{ List<String> list=new ArrayList<String>(); public Myadapter (List<String> list){ this.list=list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View converView, ViewGroup viewGroup) { View view; if (converView==null){ view=View.inflate(MainActivity.this,R.layout.item,null); }else { view=converView; } TextView tvitem= (TextView) view.findViewById(R.id.tvitem); tvitem.setText(list.get(i)); return view; } } private void refresh(){ new Handler().postDelayed(new Runnable() { @Override public void run() { // 更新が終了したらインジケータ非表示 new Task().execute(); mWaveSwipeRefreshLayout.setRefreshing(false); } }, 3000); } class Task extends AsyncTask<Void, Void,String>{ @Override protected String doInBackground(Void... voids) { try { Thread.sleep(500); for (int a=0;a<10;a++){ str="我是被添加的"; } } catch (InterruptedException e) { e.printStackTrace(); } return str; } @Override protected void onPostExecute(String stringlist) { list.addFirst(stringlist); myadapter.notifyDataSetChanged(); mWaveSwipeRefreshLayout.setRefreshing(false); super.onPostExecute(stringlist); } } @Override protected void onResume() { mWaveSwipeRefreshLayout.setRefreshing(true); refresh(); super.onResume(); } @Override public void onRefresh() { refresh(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { mWaveSwipeRefreshLayout.setRefreshing(true); refresh(); return true; } return super.onOptionsItemSelected(item); }}</span>
0 0
- Android之水滴落下的下拉刷新
- Android好的的水滴下拉刷新控件
- Android 仿IOS版QQ实现下拉刷新水滴的效果
- canvas下拉刷新--模仿水滴
- 仿Path 水滴的下拉刷新效果 还有视差滚动
- android之Listview的下拉刷新实现
- 非常简单的下拉刷新和下拉加载更多效果,仿IOS水滴,效果非常好,集成也很简单。
- android下拉刷新之SwipeRefreshLayout
- android 之 下拉刷新PullToRefresh
- Android下拉刷新之ZrcListView
- Android之listview下拉刷新
- Android ViewPager特效之水滴效果的滑动切换页面
- 【Android】通用系列 —— 下拉刷新之继承ListView的下拉刷新
- Android开发之自定义控件--ListView的下拉刷新功能
- android之我自己实现的下拉刷新
- Android之---PullRefreshListView(带抖动效果的下拉刷新)
- android 高仿IOS水滴版上下拉刷新的Listview
- android listview 的下拉刷新
- s3c2410_gpio_setpin()系列函数
- libevent学习笔记 ---- 回显服务器 (3)
- win7下面完全删除mysql
- 解读自定义viewgroup在计算测量上的部分源码
- matlab 中文乱码
- Android之水滴落下的下拉刷新
- 无线信号衰减值
- C++ GUI Qt 4 编程-第八章 基于项的图形视图
- 51中断-定时器/计数器中断
- binary-tree-preorder-traversal,前序输出
- Jmeter关联
- 【转】SQL Server 动态行转列(PIVOT)
- elipse,jdk,sdk,adt的安装
- Go语言基础:array、slice、make和new操作、map