kim*_*imv 5 android android-fragments android-viewpager
我有一个ViewPager  ,Fragment如果某个动作发生,我必须更换第一个.
public static class PagerAdapter extends FragmentStatePagerAdapter{
    private TempChannel latestChannel;
    private VideosFragment.SortType sortType;
    public PagerAdapter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:
                if(latestChannel == null) {
                    return new LatestVideosFragment();
                }else{
                    return VideosFragment.getVideosFragment(latestChannel, sortType);
                }
            case 1:
                return new LiveVideosFragment();
            case 2:
                return new ConversationsFragment();
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)
基本上,当我单击某个通道时LatestVideosFragment,适配器中的第一个位置应该更改为VideosFragment该类的实例.
public void startLatestChannelFragment(TempChannel channel, VideosFragment.SortType sortType){
    adapter.setLatestChannel(channel, sortType);
    adapter.notifyDataSetChanged();
    Log.d("x", "on channel started");
}
Run Code Online (Sandbox Code Playgroud)
我假设调用notifyDataSetChanged()适配器会更新片段,但事实并非如此.也试过呼吁invalidate()ViewPager没有任何影响.的Fragment,如果我去了第三个选项卡只更新,然后返回到第一.
在这里查看答案以获得一些好的解决方案:ViewPager PagerAdapter不更新View
基本上覆盖getItemPosition你的   PagerAdapter意志会给你带来理想的效果.
public int getItemPosition(Object object) {
     return POSITION_NONE;
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           9767 次  |  
        
|   最近记录:  |