繁体   English   中英

查看传呼机的不同结果

[英]View pager different results

我在我的应用程序的MainActivity中使用带有3个选项卡的视图寻呼机来显示网格图像。 我对所有3个选项卡都有一个MovieFragment ,并且每次更改选项卡时,我都使用FragmentsPagerAdapter创建MovieFragment新实例。

//FragmentsPagerAdapter method
@Override
public Fragment getItem(int position) {
    switch (position){
        case 0: return MoviesFragment.newInstance(buildUrl(Utility.POPULAR_URL));
        case 1: return MoviesFragment.newInstance(buildUrl(Utility.RATED_URL));
        case 2: return MoviesFragment.newInstance("favorite");
        default: return null;
    }
}

//Fragment method
public static MoviesFragment newInstance(String uri){
    MoviesFragment fragment = new MoviesFragment();
    Bundle bundle = new Bundle();
    bundle.putString("fragment", uri);
    fragment.setArguments(bundle);
    return fragment;
}

现在我在我的应用程序中得到了不同的结果,所以我调试了此方法,发现它在选择选项卡之前调用了方法,即当我打开应用程序时,它为case 0 and case 1创建实例,而当我进入second tab它为case 2创建实例。 case 2 现在,在第二个选项卡中,当我对数据库进行更改并尝试将它们添加到第三个选项卡中时,更改不会反映出来,因为当选择第二个选项third tab时,它已经创建了third tab实例。 我该如何解决这个问题?

@Sahil这是因为在android中, ViewPager仅跟踪上一页和下一页。 因此,当您初始化viewPager时,它将自动创建前2页,并为第1个2个标签页调用MoviesFragment 一旦开始滚动浏览,它就会开始仅跟踪上一页和下一页。

这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM