相关疑难解决方法(0)

ViewPager中使用FragmentPagerAdapter的片段在第二次查看时为空白

我有一个片段界面,底部有标签,可以在主视图中打开不同的片段.

我有一个特定的片段,它是一个项目列表.如果用户选择此列表中的一个项目,则打开另一个片段,其中包含一个viewpager,它在前一个片段的列表中的所有项目之间水平滚动.这非常有效.

viewpager使用FragmentPagerAdapter来显示项目.

当用户选择列表中的项目,查看它,然后点击标签栏上的按钮返回列表,然后选择另一个项目时,问题就出现了.第二次选择项目时,将显示空白屏幕而不是viewpager.发生这种情况时,我的LogCat中没有收到任何错误.

为什么viewpager只出现在第一次?

FragmentPagerAdapter:

public class ViewPagerAdapter extends FragmentPagerAdapter {
    Cursor mCursor;

    public ViewPagerAdapter(FragmentManager fm, Cursor c) {
        super(fm);
        mCursor = c;
    }

    public void changeCursor(Cursor c) {
        mCursor = c;
        this.notifyDataSetChanged();
    }

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

    @Override
    public Fragment getItem(int position) {
        mCursor.moveToPosition(position);
        return TeamCardFragment.newInstance(mCursor, position);
    }
}
Run Code Online (Sandbox Code Playgroud)

PagerFragment:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Bundle bundle = getArguments();
    mCursorPosition = bundle.getInt(TeamCardCommon.BUNDLE_KEY_CURSOR_POSITION); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager android-nested-fragment

96
推荐指数
6
解决办法
4万
查看次数

嵌套片段和后栈

Back Stack是否支持与Android中嵌套片段的交互?

如果是的话,我做错了什么?在我的实现中,后退按钮完全忽略了我将此事务添加到后台堆栈的事实.我希望它不是因为嵌套片段的问题,而是我做错了什么.

以下代码位于我的一个片段中,用于将新片段与当前显示的任何嵌套片段交换:

     MyFragment fragment = new MyFragment();
     FragmentTransaction ft = getChildFragmentManager().beginTransaction();
     ft.setCustomAnimations(R.animator.slide_in_from_right, R.animator.slide_out_left, R.animator.slide_in_from_left, R.animator.slide_out_right);
     ft.addToBackStack(null);
     ft.replace(R.id.myFragmentHolder, fragment);
     ft.commit();
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-nested-fragment

18
推荐指数
1
解决办法
2万
查看次数

从BackStack返回片段后,Android ViewPager无法正常显示

我有一个ViewPager设置,它使用片段显示我可以循环的不同图标,以便用户可以导航不同的菜单选项.

ViewPager中的每个项目都位于片段中,如下所示:

public static Fragment newInstance(MainHandheldActivity context, int pos)
{
    Bundle b = new Bundle();
    b.putInt("pos", pos);
    return Fragment.instantiate(context, ObjectFragment.class.getName(), b);
}

@Override
public View onCreateView(LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {

    // Get menu image icons
    int icons[] = new int[3];
    icons[0] = R.mipmap.ic_text;
    icons[1] = R.mipmap.ic_voice;
    icons[2] = R.mipmap.ic_mail;

    // Get root view of the fragment layout
    LinearLayout rootView = (LinearLayout) inflater.inflate(
            R.layout.fragment_collection_object, container, false);
    Bundle args = getArguments();
    int pos = args.getInt("pos");

    // Set the current menu …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

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