38

I use a SwipeRefreshLayout to reload the content of a listview. It works and the onRefreshListener is triggered but the small loading spinner that appears onswipe doesn't want to dismiss after the loading is complete. Is there a way to make it go ?

Edit : fixed SwipeView means SwipeRefreshLayout

Labe
  • 1,262
  • 2
  • 20
  • 30

5 Answers5

56

Do you mean SwipeRefreshLayout? if so use SwipeRefreshLayout.setRefreshing(false)

MineConsulting SRL
  • 2,340
  • 2
  • 17
  • 32
  • Yes it was what i meant. I corrected the View name mistake in the op. Thank you your solution works! – Labe Feb 18 '15 at 12:00
  • I have this scenario, getting JSON data from server. And how to test if it is already loaded so that SRL can be dismiss - set to false – RoCkDevstack Jun 09 '16 at 13:48
28

The correct way of using it is like this:

if (swipeLayout.isRefreshing()) {
   swipeLayout.setRefreshing(false);
}
dvs
  • 644
  • 5
  • 14
9

If you are using SwipeRefreshLayout then use swipeLayout_object.setRefreshing(false); for dismiss that loading icon. i.e.

private SwipeRefreshLayout swipeLayout;

protected void onCreate(Bundle savedInstanceState) {
....


 swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);

 swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

                @Override
                public void onRefresh() {
                    //Do your task
                    swipeLayout.setRefreshing(false);

                }
            });
}

Details available here. https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

Mukesh Kumar Singh
  • 4,512
  • 2
  • 22
  • 30
6

For Kotlin,

SwipeRefreshLayout.isRefreshing = false

iCantC
  • 2,852
  • 1
  • 19
  • 34
1

here is complete solution for loading a page and remove loading animation after page is fully loaded.

 private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
}

@Override
public void onPageFinished(WebView view, String url) {
    swipeRefreshLayout.setRefreshing(false);
}