Supporting Swipe-to-Refresh
R.color
Android 開發團隊推出 android.support.v4.widget.SwipeRefreshLayout,讓開發者可以輕鬆實作以手指下滑(拉) 螢幕以更新資料的功能的 app。
SwipeRefreshLayout 必須是畫面元件的最頂層,其下的子元件通常是 ListView 或 GridView。
activity_main.xml 的內容:
<?xml version="1.0" encoding="utf-8"?>
<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">
<!-- android:id 的值不可改變 -->
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
MainActivity.java 的內容:
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
public class MainActivity extends AppCompatActivity
{
private static final String TAG = "MainActivity";
SwipeRefreshLayout mySwipeRefreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
mySwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()
{
@Override
public void onRefresh()
{
Log.i(TAG, "onRefresh called from SwipeRefreshLayout");
myUpdateOperation();
}
});
// 指定 progress animation 的顏色, 似乎沒有數量限制,
// 顏色會依順序循環播放
mySwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_red_light,
android.R.color.holo_blue_light,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_purple);
}
private void myUpdateOperation()
{
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
mySwipeRefreshLayout.setRefreshing(false);
}
}, 3000); // 3 秒
}
}

沒有留言:
張貼留言