From a8daca6d0286ca895574b7015f24996e2e57c4aa Mon Sep 17 00:00:00 2001 From: Chris Banes Date: Sun, 17 May 2015 10:58:52 +0100 Subject: [PATCH] AppBar demo using SwipeRefreshLayout Change-Id: Iae006f6b1ac52874c7b3c4f54b2b23c0c45066b0 --- .../SupportDesignDemos/AndroidManifest.xml | 9 ++++ ...ar_scroll_tabs_pinned_with_swiperefres.xml | 48 +++++++++++++++++++ ...clude_appbar_recyclerview_swiperefresh.xml | 31 ++++++++++++ .../SupportDesignDemos/res/values/strings.xml | 1 + ...tToolbarScrollTabsPinWithSwipeRefresh.java | 27 +++++++++++ .../design/widget/AppBarLayoutUsageBase.java | 20 ++++++++ 6 files changed, 136 insertions(+) create mode 100644 samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml create mode 100644 samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml create mode 100644 samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java diff --git a/samples/SupportDesignDemos/AndroidManifest.xml b/samples/SupportDesignDemos/AndroidManifest.xml index 0835d2304..e1ecdf3ba 100644 --- a/samples/SupportDesignDemos/AndroidManifest.xml +++ b/samples/SupportDesignDemos/AndroidManifest.xml @@ -117,6 +117,15 @@ + + + + + + + diff --git a/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml new file mode 100644 index 000000000..b5e0c07fb --- /dev/null +++ b/samples/SupportDesignDemos/res/layout/design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + diff --git a/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml b/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml new file mode 100644 index 000000000..6a8d4481d --- /dev/null +++ b/samples/SupportDesignDemos/res/layout/include_appbar_recyclerview_swiperefresh.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/samples/SupportDesignDemos/res/values/strings.xml b/samples/SupportDesignDemos/res/values/strings.xml index c1d0bd64b..16b17172a 100644 --- a/samples/SupportDesignDemos/res/values/strings.xml +++ b/samples/SupportDesignDemos/res/values/strings.xml @@ -65,6 +65,7 @@ AppBar/Toolbar Scroll + Tabs Scroll AppBar/Toolbar Scroll + Tabs Pin + AppBar/Toolbar Scroll + Tabs Pin + Swipe Refresh AppBar/Collapsing Toolbar (pinned) AppBar/Collapsing Toolbar (pinned with FAB) AppBar/Collapsing Toolbar (scroll off) diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java new file mode 100644 index 000000000..ddba4dfaa --- /dev/null +++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.support.design.widget; + +import com.example.android.support.design.R; + +public class AppBarLayoutToolbarScrollTabsPinWithSwipeRefresh extends AppBarLayoutUsageBase { + + @Override + protected int getLayoutId() { + return R.layout.design_appbar_toolbar_scroll_tabs_pinned_with_swiperefres; + } +} diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java index f91ef5121..e616f2342 100644 --- a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java +++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/AppBarLayoutUsageBase.java @@ -21,8 +21,10 @@ import com.example.android.support.design.R; import com.example.android.support.design.Shakespeare; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.TabLayout; +import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -64,6 +66,24 @@ abstract class AppBarLayoutUsageBase extends AppCompatActivity { if (tabLayout != null) { setupTabs(tabLayout); } + + final SwipeRefreshLayout refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh); + if (refreshLayout != null) { + refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + private final Handler mHandler = new Handler(); + + @Override + public void onRefresh() { + // Post a delayed runnable to reset the refreshing state in 2 seconds + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + refreshLayout.setRefreshing(false); + } + }, 2000); + } + }); + } } @Override