簡體   English   中英

在FragmentPagerAdapter中更改位置時如何重新加載和刷新片段?

[英]How to reload and refresh fragment when changing position in FragmentPagerAdapter?

每當我在FragmentPagerAdapter中切換時,我都需要重新加載操作並刷新片段

ViewPager PagerAdapter不更新視圖

如何刷新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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM