今日、Google +でSwipeRefreshLayoutという用語を見つけましたが、検索したところ、それがgoogle update SDKに追加されたばかりの新しいウィジェットであることがわかりました。
SwipeRefreshLayout
SwipeRefreshLayoutは、文字通り、サポートv4互換パッケージの下でViewGroupから継承されたプルダウンリフレッシュレイアウトを意味しますが、サポートライブラリのバージョンを19.1にアップグレードする必要があります。プルダウンリフレッシュに関しては、誰もがActionBarPullToRefreshに精通している必要があります。Googleは、より公式なプルダウンリフレッシュコンポーネントをリリースしました。これは、間違いなく開発者にとって朗報です。次の図に示すように、このコンポーネントを使用すると、Google Nowの更新効果を簡単に実現できます。
主な方法
-
setOnRefreshListener(OnRefreshListener):レイアウトにリスナーを追加します
-
setRefreshing(boolean):更新プログレスバーを表示または非表示にします
-
isRefreshing():更新されているかどうかを確認します
-
setColorScheme():プログレスバーのカラーテーマを設定します。最大4つまで設定できます
xmlレイアウトファイル
レイアウトファイルは非常にシンプルです。SwipeRefreshLayoutを最も外側のレイヤーに追加するだけで、その子をScrollViewやListViewなどのスクロール可能なビューにすることができます。といった:
<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="@string/hello_world"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"/>
</ScrollView>
</android.support.v4.widget.SwipeRefreshLayout>
活動コード
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
swipeLayout.setOnRefreshListener(this);
swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
}
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override public void run() {
swipeLayout.setRefreshing(false);
}
}, 5000);
}
上記のコードは非常にシンプルです。SwipeRefreshLayoutにリスナーを追加するだけで十分です。setColorSchemeメソッドで更新プログレスバーの色を設定することは注目に値します。最大4つのループ表示を設定できます。最初のデフォルトは、ユーザージェスチャーでロードされる色プログレスバーです。 。
ソースコード
私が書いた小さなデモはgithubにあり、アドレスは次のとおりです:SwipeRefreshLayoutDemo
総括する
google在不断完善自己的sdk,推出越来越多的组件,其目的是让开发更简单,设计上更统一,这可能是google未来的方向,不管怎样,这对开发者来说无疑是非常好的消息。