Is there any way to trigger the SwipeRefreshLayout
programmatically? The animation should start and the onRefresh
method from the OnRefreshListener
interface should get called.
if you are using the new swipeRefreshLayout intoduced in 5.0
As the image shown above you just need to add the following line to trigger the swipe refresh layout programmatically
in Java:
mSwipeRefreshLayout.post(new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(true);
}
});
on in Kotlin:
mSwipeRefreshLayout.post { mSwipeRefreshLayout.isRefreshing = true }
if you simply call in Java:
mSwipeRefreshLayout.setRefreshing(true);
or in Kotlin
mSwipeRefreshLayout.isRefreshing = true
it won't trigger the circle to animate, so by adding the above line u just make a delay in the UI thread so that it shows the circle animation inside the ui thread.
By calling mSwipeRefreshLayout.setRefreshing(true)
the OnRefreshListener
will NOT get executed
In order to stop the circular loading animation call mSwipeRefreshLayout.setRefreshing(false)