Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android控件(一)下拉刷新:SwipeRefreshLayout

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

編輯:關於Android編程

需要注意的是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" >
    
        
        
    
</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;

// 布局文件下, 只能有一個直接的子類
//
// 主要方法
//        setOnRefreshListener(OnRefreshListener): 為布局添加一個Listener
//        setRefreshing(boolean): 顯示或隱藏刷新進度條
//        isRefreshing(): 檢查是否處於刷新狀態
//        setColorSchemeResource(): 設置進度條的顏色主題,最多能設置四種


public class MyActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener{
    private SwipeRefreshLayout mSwipeLayout;
    private ListView mListView;
    private ArrayAdapter 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(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);

    }
}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved