如何使用带有 SwipeRefreshLayout 的片段来控制 ViewPager
How to control ViewPager with a fragment with SwipeRefreshLayout
在我的应用程序中,我将 FragmentStatePagerAdapter
与一个 fragment
一起使用,我在 adapter
中使用了 3 次。在我的 Fragment
中,我有一个 SwipeRefreshLayout
和一个 Retrofit
。我的问题是,当我在页面之间滑动并使用 SwipRefresh
时,我的内容重复了。我怎样才能停止这种重复。
谢谢
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (!isNetworkAvailable()) {
Toast.makeText(getActivity(), "No Internet", Toast.LENGTH_SHORT).show();
} else if (isNetworkAvailable()) {
if (flag) {
listDataHeader.clear();
adapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild);
expListView.setAdapter(adapter);
getData();
adapter.notifyDataSetChanged();
} else {
listDataHeader.clear();
adapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild);
expListView.setAdapter(adapter);
getData();
adapter.notifyDataSetChanged();
}
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(false);
}
}, 4000);
}
});
当您使用此 getData() 获取数据时;届时 arraylist 或 list 将被清除,然后新的响应绑定到 list 或 arraylist。
在我的应用程序中,我将 FragmentStatePagerAdapter
与一个 fragment
一起使用,我在 adapter
中使用了 3 次。在我的 Fragment
中,我有一个 SwipeRefreshLayout
和一个 Retrofit
。我的问题是,当我在页面之间滑动并使用 SwipRefresh
时,我的内容重复了。我怎样才能停止这种重复。
谢谢
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (!isNetworkAvailable()) {
Toast.makeText(getActivity(), "No Internet", Toast.LENGTH_SHORT).show();
} else if (isNetworkAvailable()) {
if (flag) {
listDataHeader.clear();
adapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild);
expListView.setAdapter(adapter);
getData();
adapter.notifyDataSetChanged();
} else {
listDataHeader.clear();
adapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild);
expListView.setAdapter(adapter);
getData();
adapter.notifyDataSetChanged();
}
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
swipeRefreshLayout.setRefreshing(false);
}
}, 4000);
}
});
当您使用此 getData() 获取数据时;届时 arraylist 或 list 将被清除,然后新的响应绑定到 list 或 arraylist。