下拉刷新

来源:互联网 发布:网络礼仪的内容 编辑:程序博客网 时间:2024/05/16 07:13

主要是参考  http://blog.csdn.net/lmj623565791/article/details/24521483


关于这个下拉刷新还是比较简单的,就看在实际中怎么用啦 。


下拉刷新使用的时Google原生态的库中的,也不知道为啥总是喜欢这种官方的。

引用的是  android.support.v4.widget.SwipeRefreshLayout;这个类。

总体功能就是下滑一下 数字增加1


1、布局文件

<?xml version="1.0" encoding="utf-8"?><!--<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.hejingzhou.swiperefreshdemo.MainActivity">--><android.support.v4.widget.SwipeRefreshLayout    android:id="@+id/swipeRefreshLayout"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:addStatesFromChildren="false"    android:background="#990033"    xmlns:android="http://schemas.android.com/apk/res/android">        <RelativeLayout            android:layout_width="match_parent"            android:layout_height="match_parent">            <TextView                android:id="@+id/textView"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_centerHorizontal="true"                android:layout_centerVertical="true"                android:background="#990033"                android:text="rrrrrrrrrrrrrrr"                android:textSize="40dp" />        </RelativeLayout>    </android.support.v4.widget.SwipeRefreshLayout><!--</RelativeLayout>-->

主要就是将所需要的内容用      <android.support.v4.widget.SwipeRefreshLayout>滑动区域控件< android.support.v4.widget.SwipeRefreshLayout/>  这个布局包裹起来就行了。


SwipeRefreshLayout常用方法:



        1、setOnRefreshListener(OnRefreshListener listener)  设置下拉监听,当用户下拉的时候会去执行回调
        2、setColorSchemeColors(int... colors) 设置 进度条的颜色变化,最多可以设置4种颜色
        3、setProgressViewOffset(boolean scale, int start, int end) 调整进度条距离屏幕顶部的距离
        4、setRefreshing(boolean refreshing) 设置SwipeRefreshLayout当前是否处于刷新状态,一般是在请求数据的时候设置为true,在数据被加载到View中后,设置为false。

2、MainActivity

package com.example.hejingzhou.swiperefreshdemo;import android.app.Service;import android.os.Message;import android.os.Vibrator;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {    private String TAG = getClass().getSimpleName();    private static final int REFERSH_COMPLETE = 0x00;//刷新标志    private SwipeRefreshLayout refreshLayout;    private TextView textView;    private int i = 0;    private android.os.Handler handler = new android.os.Handler() {        public void handleMessage(Message msg) {            switch (msg.what) {                case REFERSH_COMPLETE:                    Log.i(TAG, "我想吃麻辣烫");                    i++;                    textView.setText("" + i);                    refreshLayout.setRefreshing(false);//通知小部件,它刷新状态已更改 改成true后刷新箭头刷新后不再回去                    break;            }        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    /**     * 初始化 加载时进行刷新一下数据     */    private void initView() {        textView = (TextView) findViewById(R.id.textView);        textView.setText("0");        refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);        refreshLayout.setOnRefreshListener(this);        refreshLayout.setColorSchemeResources(R.color.colorPrimary);//colorAccent圆箭头        refreshLayout.setRefreshing(true);//true加载View时刷新        refreshLayout.setProgressViewOffset(true, 20, 30);        handler.sendEmptyMessageDelayed(REFERSH_COMPLETE, 500);//首次加载一次线程        refreshLayout.setSize(SwipeRefreshLayout.LARGE);//设置下拉动画的大小就两个值    }    @Override    public void onRefresh() {        shock(100);        handler.sendEmptyMessageDelayed(REFERSH_COMPLETE, 2000);    }    /**     * 下拉震动     * 需要添加权限  <uses-permission android:name="android.permission.VIBRATE" />     *     * @param time     */    private void shock(int time) {        //Toast.makeText(getApplicationContext(),"正在刷新数据...",Toast.LENGTH_SHORT).show();        Vibrator vib = (Vibrator) getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);        vib.vibrate(time);    }}

1 0
原创粉丝点击