您的位置:首页 > 移动开发 > Android开发

Material Design之SwipeRefreshLayout

2016-05-04 11:43 495 查看
http://image.uisdc.com/wp-content/uploads/2014/12/b-16.gif

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html



" data-snippet-id="ext.4f852505688287bbea8a4edc59f83eaf" data-snippet-saved="false" data-codota-status="done">[code]<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swiperefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</android.support.v4.widget.SwipeRefreshLayout>


mDatas = new ArrayList();

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipe_refresh_layout);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
//设置下拉圆圈上的颜色
mSwipeLayout.setColorSchemeResources(android.R.color.holo_blue_light,
android.R.color.holo_green_dark,
android.R.color.holo_orange_dark,
android.R.color.holo_red_dark);
//        mSwipeLayout.setColorSchemeColors(Color.BLUE, Color.GREEN, Color.YELLOW, Color.RED);
//        mSwipeLayout.setDistanceToTriggerSync(500); // 设置手指在屏幕下拉多少距离(dip)会触发下拉刷新
//        mSwipeLayout.setProgressViewOffset();
//        mSwipeLayout.setProgressBackgroundColorSchemeResource(android.R.color.holo_blue_dark); // 设定下拉圆圈的背景
//        mSwipeLayout.setProgressBackgroundColorSchemeColor(Color.GREEN);
//        mSwipeLayout.setProgressViewEndTarget();
//        mSwipeLayout.setNestedScrollingEnabled(true);
//        mSwipeLayout.setSize(SwipeRefreshLayout.LARGE);  // 设置圆圈的大小

mListView = (ListView) findViewById(R.id.list);
mDatas = Cheeses.randomList(15);
mAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mDatas);
mListView.setAdapter(mAdapter);
mListView.setOnScrollListener(this);

mSwipeLayout.setOnRefreshListener(this);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public void onRefresh() {
mDatas.clear();
mDatas = Cheeses.randomList(15);
mAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mDatas);
mListView.setAdapter(mAdapter);
// 停止刷新
mSwipeLayout.setRefreshing(false);
}

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 当不滚动时
if (scrollState == SCROLL_STATE_IDLE) {
// 判断是否滚动到底部
if (view.getLastVisiblePosition() == view.getCount() - 1) {
// 加载更多功能的代码
mDatas.addAll(Cheeses.randomList(15));
mAdapter.notifyDataSetChanged();
}
}
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

}
}
" data-snippet-id="ext.563b3669234bfab8c0dcf0e2ce54131b" data-snippet-saved="false" data-codota-status="done">[code]package com.leigo.myapplication;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;

/**
* Created by GL on 2016/4/26.
*/
public class SwipeRefreshLayoutDemo extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener, AbsListView.OnScrollListener {

private static final String TAG = SwipeRefreshLayoutDemo.class.getSimpleName();

private SwipeRefreshLayout mSwipeLayout;
private ListView mListView;
private ArrayAdapter mAdapter;
private ArrayList<String> mDatas = new ArrayList<>();

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipe_refresh_layout);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
//设置下拉圆圈上的颜色
mSwipeLayout.setColorSchemeResources(android.R.color.holo_blue_light,
android.R.color.holo_green_dark,
android.R.color.holo_orange_dark,
android.R.color.holo_red_dark);
//        mSwipeLayout.setColorSchemeColors(Color.BLUE, Color.GREEN, Color.YELLOW, Color.RED);
//        mSwipeLayout.setDistanceToTriggerSync(500); // 设置手指在屏幕下拉多少距离(dip)会触发下拉刷新
//        mSwipeLayout.setProgressViewOffset();
//        mSwipeLayout.setProgressBackgroundColorSchemeResource(android.R.color.holo_blue_dark); // 设定下拉圆圈的背景
//        mSwipeLayout.setProgressBackgroundColorSchemeColor(Color.GREEN);
//        mSwipeLayout.setProgressViewEndTarget();
//        mSwipeLayout.setNestedScrollingEnabled(true);
//        mSwipeLayout.setSize(SwipeRefreshLayout.LARGE);  // 设置圆圈的大小

mListView = (ListView) findViewById(R.id.list);
mDatas = Cheeses.randomList(15);
mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mDatas);
mListView.setAdapter(mAdapter);
mListView.setOnScrollListener(this);

mSwipeLayout.setOnRefreshListener(this);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public void onRefresh() {
mDatas.clear();
mDatas = Cheeses.randomList(15);
mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mDatas);
mListView.setAdapter(mAdapter);
// 停止刷新
mSwipeLayout.setRefreshing(false);
}

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 当不滚动时
if (scrollState == SCROLL_STATE_IDLE) {
// 判断是否滚动到底部
if (view.getLastVisiblePosition() == view.getCount() - 1) {
// 加载更多功能的代码
mDatas.addAll(Cheeses.randomList(15));
mAdapter.notifyDataSetChanged();
}
}
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Material Design Android