如何使用不同的片段/布局实现ViewPager

如何使用不同的片段/布局实现ViewPager

当我启动一个实现viewpager的活动时,viewpager创建了各种片段。我想对每个片段使用不同的布局,但问题是ViewPager在最大时只显示了两个布局(在1之后的所有剩余片段上的第二个布局)。

以下是快速活动它实现了viewpager:

public class SwipeActivity extends FragmentActivity{

    MyPageAdapter pageAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_swipe);
        pageAdapter = new MyPageAdapter(getSupportFragmentManager());
        ViewPager pager=(ViewPager)findViewById(R.id.pager);
        pager.setAdapter(pageAdapter);
        ActionBar bar = getActionBar();
        bar.setDisplayHomeAsUpEnabled(true);
    }
    /**
    * Custom Page adapter
    */
    private class MyPageAdapter extends FragmentPagerAdapter
    {
        public MyPageAdapter(FragmentManager fm)
        {
            super(fm);
        }
        @Override
        public int getCount()
        {
            return 5;
        }
        @Override
        public Fragment getItem(int position)
        {
            switch(position)
            {
                case 0: return new MyFragment();
                case 1: return SecondFragment.newInstance("asdasd");
                default : return RamFragment.newInstance("s");
            }
        }
     }}

下面是碎片

public class MyFragment extends Fragment{
   @Override
   public View onCreateView(LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup,    Bundle paramBundle)
   {
     return paramLayoutInflater.inflate(R.layout.processorlayout, paramViewGroup, false);
   }}

我使用了像这样的5个片段,它们都有不同的布局,但视图页最多只显示了2个。



慕仙森
浏览 733回答 3
3回答

Helenr

添加片段的代码public Fragment getItem(int position) {     switch (position){         case 0:             return new Fragment1();         case 1:             return new Fragment2();         case 2:             return new Fragment3();         case 3:             return new Fragment4();         default:             break;     }     return null;}为每个片段创建一个XML文件,比如Fragment1,使用片段_one.xml作为布局文件,在Fragment1java文件中使用下面的代码。public class Fragment1 extends Fragment {     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {         View view = inflater.inflate(R.layout.fragment_one, container, false);         return view;     }}以后你可以做必要的修正。对我起作用了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android