Cách dễ nhất tôi nghĩ là được cung cấp bởi thư viện hỗ trợ Android:
android.support.v4.widget.SwipeRefreshLayout;
một khi đã được nhập thì bạn có thể định nghĩa bố cục của mình như sau:
<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>
Tôi giả sử rằng bạn sử dụng chế độ xem tái chế thay vì listview. Tuy nhiên, listview vẫn hoạt động nên bạn chỉ cần thay thế recyclerview bằng listview và cập nhật các tham chiếu trong mã java (Fragment).
Trong đoạn hoạt động của bạn, trước tiên bạn triển khai giao diện , 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);
}
}
Hy vọng điều này sẽ giúp công chúng