繁体   English   中英

Android ViewPager片段

[英]Android viewpager fragment

我需要创建一个包含一个活动和三个片段的应用程序。 页面不需要动态创建,但是它是一个加号。 我的问题是:每个视图都需要一个单独的片段还是可以在另一个视图中重复使用?我已经在这里阅读了Android教程https://developer.android.com/training/animation/screen-slide.html# viewpager for view pager,它给我留下了印象。 它是一个重要的项目。 我是菜鸟,所以请对此进行解释。

我假设您要3个全屏片段。 ViewPagerFragmentPagerAdapter一起使用。

public class MyFragment extends Fragment {

    @BindView(R.id.view_pager)
    ViewPager viewPager;
    MyPagerAdapter pagerAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.my_fragment, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        pagerAdapter = new MyPagerAdapter(getFragmentManager());
        viewPager.setAdapter(pagerAdapter);
    }

}

my_fragment.xml

<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

MyPagerAdapter.java

public class MyPagerAdapter extends FragmentPagerAdapter {

    static final int NUM_PAGES = 3;

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return new Fragment1();
            case 1:
                return new Fragment2();
            case 2:
                return new Fragment3();
        }
    }

    @Override
    public int getCount() {
        return NUM_PAGES;
    }
}

这将允许向右或向左滑动在片段之间切换。 除了滑动以外,您还必须使用TabLayout ,底部导航,按钮或其他方式在它们之间进行切换。 我把它留给你找出;)

暂无
暂无

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

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