Android控件(一)下拉刷新:SwipeRefreshLayout

来源:互联网 发布:淘宝店铺如何删除宝贝 编辑:程序博客网 时间:2024/05/17 07:45

需要注意的是SwipeRefreshLayout下面只可以有一个直接子节点。

布局文件如下。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/container"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:ignore="MergeRootFrame" >    <android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/swipe_container"        android:layout_width="match_parent"        android:layout_height="match_parent" >        <ListView            android:id="@+id/list"            android:layout_width="match_parent"            android:layout_height="match_parent" >        </ListView>    </android.support.v4.widget.SwipeRefreshLayout></FrameLayout>

主程序如下:

package com.francis.swiperefreshlayouttest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.view.Menu;import android.view.MenuItem;import android.support.v4.widget.SwipeRefreshLayout;import android.widget.ArrayAdapter;import android.widget.ListView;// 布局文件下,<android.support.v4.widget.SwipeRefreshLayout> 只能有一个直接的子类//// 主要方法//        setOnRefreshListener(OnRefreshListener): 为布局添加一个Listener//        setRefreshing(boolean): 显示或隐藏刷新进度条//        isRefreshing(): 检查是否处于刷新状态//        setColorSchemeResource(): 设置进度条的颜色主题,最多能设置四种public class MyActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener{    private SwipeRefreshLayout mSwipeLayout;    private ListView mListView;    private ArrayAdapter<String> mArrayAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_my);        String[] strings = new String[] {"a","b","c","d"};        mArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strings);        mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);        mSwipeLayout.setOnRefreshListener(this);        //加载颜色是循环播放的,只要没有完成刷新就会一直循环,color1>color2>color3>color4        mSwipeLayout.setColorSchemeResources(                android.R.color.holo_blue_bright,                android.R.color.holo_green_light,                android.R.color.holo_orange_light,                android.R.color.holo_red_light);        mListView = (ListView)findViewById(R.id.list);        mListView.setAdapter(mArrayAdapter);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.my, 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();        if (id == R.id.action_grid_view) {            startActivity(new Intent(MyActivity.this,GridViewTest.class));        }        return super.onOptionsItemSelected(item);    }    @Override    public void onRefresh() {        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                // 停止刷新                mSwipeLayout.setRefreshing(false);            }        }, 3000);    }}


0 0
原创粉丝点击