सबसे आसान तरीका मुझे लगता है कि एंड्रॉइड सपोर्ट लाइब्रेरी द्वारा प्रदान किया गया है:
android.support.v4.widget.SwipeRefreshLayout;
एक बार आयात होने के बाद आप अपने लेआउट को निम्न प्रकार से परिभाषित कर सकते हैं:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/refresh"
android:layout_height="match_parent"
android:layout_width="match_parent">
<android.support.v7.widget.RecyclerView
xmlns:recycler_view="http://schemas.android.com/apk/res-auto"
android:id="@android:id/list"
android:theme="@style/Theme.AppCompat.Light"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/button_material_light"
>
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
मुझे लगता है कि आप सूची के बजाय पुनर्नवीनीकरण दृश्य का उपयोग करते हैं। हालाँकि, सूची अभी भी काम करती है, इसलिए आपको केवल सूची के साथ recyclerview को बदलने और जावा कोड (फ़्रैग्मेंट) में संदर्भों को अपडेट करने की आवश्यकता है।
आपकी गतिविधि के टुकड़े में, आप पहले इंटरफ़ेस लागू करते हैं SwipeRefreshLayout.OnRefreshListener
: i, e
public class MySwipeFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener{
private SwipeRefreshLayout swipeRefreshLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_item, container, false);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh);
swipeRefreshLayout.setOnRefreshListener(this);
}
@Override
public void onRefresh(){
swipeRefreshLayout.setRefreshing(true);
refreshList();
}
refreshList(){
//do processing to get new data and set your listview's adapter, maybe reinitialise the loaders you may be using or so
//when your data has finished loading, cset the refresh state of the view to false
swipeRefreshLayout.setRefreshing(false);
}
}
आशा है कि इससे आम जनता को मदद मिलेगी