用其他片段替换片段给了我一些问题

时间:2016-02-14 16:16:57

标签: android android-viewpager fragmenttransaction

我正在使用ViewPager创建滑动屏幕,我在FragmentActivity中使用滑动显示两个片段。请考虑以下代码:

Fragment_One.java

1.0

2.Fragment_Two.java

  public class Fragment_One extends Fragment {

    private Button btnNext;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_one,null);
        btnNext = (Button) v.findViewById(R.id.btnNext);
        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Fragment fragment = new Fragment_Two();
                FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.replace(R.id.fragmentOne,fragment);
                fragmentTransaction.addToBackStack(null);
                fragmentTransaction.commit();
            }
        });
        return v;
    }
}

第3。 PagerAdapter.java

 public class Fragment_Two extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_two,null);
    }
}

4.MainActivity.java

 public class PagerAdapter extends FragmentPagerAdapter {

    List<Fragment> listFragments ;
    public PagerAdapter(FragmentManager fm,List<Fragment> listFragments) {
        super(fm);
        this.listFragments = listFragments;
    }

    @Override
    public Fragment getItem(int i) {
        return listFragments.get(i);
    }

    @Override
    public int getCount() {
        return listFragments.size();
    }
}

上面提到的代码在刷屏幕时工作正常。但是我点击下一个按钮,片段被另一个替换,但显示在同一个屏幕上。我无法解决问题。屏幕截图如下:

ScreenshotOne

ScreenshotTwo

下一个按钮应该与我们刷屏幕的方式相同。请帮我解决问题。

1 个答案:

答案 0 :(得分:1)

不会更容易使用:

{{1}}