相关疑难解决方法(0)

从ViewPager中检索片段

我使用的是ViewPager连同FragmentStatePagerAdapter主办三个不同的片段:

  • [片段1]
  • [Fragment2]
  • [Fragment3]

当我想Fragment1ViewPagerFragmentActivity.

有什么问题,我该如何解决?

android android-fragments android-viewpager

240
推荐指数
8
解决办法
15万
查看次数

未调用FragmentPagerAdapter getItem

我无法在FragmentPagerAdapter中重用片段.使用destroyItem()方法,它正在删除片段,但仍然没有再次调用getItem().只有2-3个图像所以我使用FragmentPagerAdapter而不是FragmentStatePagerAdapter ..

public class ExamplePagerAdapter extends FragmentPagerAdapter {

    ArrayList < String > urls;
    int size = 0;
    public ExamplePagerAdapter(FragmentManager fm, ArrayList < String > res) {
        super(fm);
        urls = res;
        size = urls.size();
    }

    @Override
    public int getCount() {
        if (urls == null) {
            return 0;
        } else {
            return size;
        }

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        FragmentManager manager = ((Fragment) object).getFragmentManager();
        FragmentTransaction trans = manager.beginTransaction();
        trans.remove((Fragment) object);
        trans.commit();
    }

    @Override
    public Fragment getItem(int …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity

118
推荐指数
4
解决办法
3万
查看次数

FragmentPagerAdapter的getItem何时被调用?

我正在编写一个使用FragmentPagerAdapter的应用程序.需要根据外部数据更新适配器中的片段 - 但这不会发生.我注意到片段类只在getItem函数中实例化一次:

@Override
public Fragment getItem(int position) {
    TabInfo info = mTabs.get(position);
    return Fragment.instantiate(mContext, info.clss.getName(),
                info.args);
}
Run Code Online (Sandbox Code Playgroud)

即使我删除了该类并使用了一个新类,也没有任何帮助 - 这个方法只调用一次,第一次填充选项卡,然后再也不会.任何人都知道为什么?

谢谢!

android fragmentpageradapter

38
推荐指数
2
解决办法
3万
查看次数

无法更改片段标记错误 - 尝试使用PagerAdapter进行切换

我读到了关于这个问题的最后一个,但没有找到有帮助的解决方案,我只是不明白问题是什么.代码已经工作,但似乎有些后续工作已经破坏了它,然后我删除了我所做的每一个更改,但我仍然得到这个错误.我希望有人能更多地了解这个问题,并且可以帮助我.

06-22 22:59:01.966: E/AndroidRuntime(4701): java.lang.IllegalStateException: Can't change tag of fragment CardFragment{426ce8a0 #1 id=0x7f0e001f android:switcher:2131623967:1}: was android:switcher:2131623967:1 now android:switcher:2131623967:2
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.app.BackStackRecord.doAddOp(BackStackRecord.java:399)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.app.BackStackRecord.add(BackStackRecord.java:390)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.support.v13.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:103)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:832)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1048)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.support.v4.view.ViewPager$3.run(ViewPager.java:244)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.view.Choreographer.doCallbacks(Choreographer.java:574)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.view.Choreographer.doFrame(Choreographer.java:543)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
06-22 22:59:01.966: E/AndroidRuntime(4701):     at android.os.Handler.handleCallback(Handler.java:733)
06-22 22:59:01.966: …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

1
推荐指数
1
解决办法
9156
查看次数