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
原创粉丝点击