Last updated on March 13th, 2020 at 12:07 pm
Swipe down refresh is very latest in most of apps like facebook, twitter and lot’s of other great app in play store. In this post i show how to create that feature in your app. Some of my last i also explain how to implement SwipeRefresh but there are some issue in it :-p so i update and fix all that in this.
Code:
Step 1 Create new project in android studio or open your project where you want to implement swipe refresh.
Step 2 Now open your activity_main.xml or file that file where you want to implement this.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/activity_main_swipe_refresh_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <ListView android:id="@+id/activity_main_listview" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout>
Step 3 Now open your Mainactivity.java file where we get our main work done.
import android.os.Bundle; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.ActionBarActivity; import android.widget.AbsListView; import android.widget.Adapter; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; public class MainActivity extends ActionBarActivity { ListView mListView; SwipeRefreshLayout mSwipeRefreshLayout; Adapter mAdapter; ArrayList<String> listItems; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh_layout); mListView = (ListView) findViewById(R.id.activity_main_listview); listItems = new ArrayList<String>(); listItems.add("hi"); listItems.add("Aneh"); listItems.add("love"); listItems.add("think"); listItems.add("code"); final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); mListView.setAdapter(adapter); mListView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { boolean enable = false; if (mListView != null && mListView.getChildCount() > 0) { // check if the first item of the list is visible boolean firstItemVisible = mListView.getFirstVisiblePosition() == 0; // check if the top of the first item is visible boolean topOfFirstItemVisible = mListView.getChildAt(0).getTop() == 0; // enabling or disabling the refresh layout enable = firstItemVisible && topOfFirstItemVisible; } mSwipeRefreshLayout.setEnabled(enable); } }); mSwipeRefreshLayout.setColorSchemeResources(R.color.orange, R.color.green, R.color.blue); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { //handling swipe refresh new Handler().postDelayed(new Runnable() { @Override public void run() { mSwipeRefreshLayout.setRefreshing(false); listItems.add("hereee"); mListView.setAdapter(adapter); } }, 2000); } }); } }
In above code i did not sync data from server but it is very easy to implement hope you can do that thing easily. Hope this help you.
Happy coding 🙂