[英]How to reload and refresh fragment when changing position in FragmentPagerAdapter?
每當我在FragmentPagerAdapter中切換時,我都需要重新加載操作並刷新片段 ,
我的FragmentPagerAdapter
public class SickAdapterApproval extends FragmentPagerAdapter{
private static final int FRAGMENT_COUNT = 4;
public SickAdapterApproval(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new SickFragmentToAll();
case 1:
return new SickFragmentToPending();
case 2:
return new SickFragmentToApproved();
case 3:
return new SickFragmentToDenied();
}
return null;
}
@Override
public int getCount() {
return FRAGMENT_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 0:
return "All";
case 1:
return "Pending";
case 2:
return "Approved";
case 3:
return "Denied";
}
return null;
}
}
但我仍然堅持不明白,有人可以向我解釋一下並舉一個例子嗎?
用FragmentStatePageAdapater更改FragmentPageAdapter
並重寫此方法:
@Override
public int getItemPosition(Object object) {
//FragmentLeft is the class for the first fragment in the view
//recreate only FragmentLeft
if (object instanceof FragmentLeft) {
return POSITION_NONE;
}
return 1;
}
如果您只想刷新現有片段的內容,則解決方案中不會涉及notifyDataSetChanged()
或適配器。 您需要確保刷新隨數據提供的視圖。 見我的資料 :
notifyDatasetChanged()方法不用於刷新當前顯示的片段或其視圖。 如果您希望某些數據發生更改時刷新它們的視圖,則需要在Fragment中添加一些偵聽器/回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.