Figure 1. A swipe-to-refresh action updating a weather
app.
Even if your app automatically updates its content on a regular basis, you can also let users
request manual updates. For example, a weather forecasting app can let users refresh the app to get
the latest forecasts on demand. To provide a standard user experience for requesting updates, the
Android platform includes the swipe-to-refresh design pattern, which lets users trigger an update
with a vertical swipe.
Learn how to respond to the swipe-to-refresh gesture and how to perform the same update from an
action bar refresh action.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# About swipe-to-refresh\n\nTry the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to pull to refresh in Compose. \n[Pull to refresh in Compose →](/develop/ui/compose/components/pull-to-refresh) \n**Figure 1.** A swipe-to-refresh action updating a weather app.\n\nEven if your app automatically updates its content on a regular basis, you can also let users\nrequest manual updates. For example, a weather forecasting app can let users refresh the app to get\nthe latest forecasts on demand. To provide a standard user experience for requesting updates, the\nAndroid platform includes the swipe-to-refresh design pattern, which lets users trigger an update\nwith a vertical swipe.\n\nDownload the sample apps:\n\n- [SwipeRefreshLayoutBasic](https://github.com/android/views-widgets-samples/tree/main/SwipeRefreshLayoutBasic)\n- [SwipeRefreshMultipleViews](https://github.com/android/views-widgets-samples/tree/main/SwipeRefreshMultipleViews/)\n\nLessons\n-------\n\n\n**[Add swipe-to-refresh to your app](/develop/ui/views/touch-and-input/swipe/add-swipe-interface)**\n:\n Learn how to provide swipe-to-refresh support in a\n [RecyclerView](/reference/androidx/recyclerview/widget/RecyclerView)\n and how to provide a more accessible refresh option using the action bar.\n\n\n**[Respond to a refresh request](/develop/ui/views/touch-and-input/swipe/respond-refresh-request)**\n:\n Learn how to respond to the swipe-to-refresh gesture and how to perform the same update from an\n action bar refresh action."]]