Bence en kolay yol android destek kütüphanesi tarafından sağlandığı gibidir:
android.support.v4.widget.SwipeRefreshLayout;
içe aktarıldıktan sonra düzeninizi aşağıdaki gibi tanımlayabilirsiniz:
<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>
Listview yerine recycler view kullandığınızı varsayıyorum. Ancak, listview yine de çalışır, bu yüzden geri dönüşüm görünümünü listview ile değiştirmeniz ve java kodundaki (Fragment) referansları güncellemeniz yeterlidir.
Etkinlik parçanızda önce arabirimi uygularsınız 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);
}
}
Umarım bu kitlelere yardımcı olur