AndroidStudio学习笔记(ViewPager)

ViewPager

实现视图翻页,多视图切换的工具
可以和PagerTabStripPagerTitleStrip 配合使用
每页不同布局控件的时候,可以配合fragment一起使用
在xml文件写入(这里配合PagerTabStrip)

<androidx.viewpager.widget.ViewPager
        android:id="@+id/view_page"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <androidx.viewpager.widget.PagerTabStrip
            android:id="@+id/pager_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top" />
    </androidx.viewpager.widget.ViewPager>

创建自己的适配器(这里使用FragmentPagerAdapter)

public class TabFragmentPagerAdapter extends FragmentPagerAdapter {
    private FragmentManager mfragmentManager;
    private List<Fragment> mlist;
    private List<String> tlist;

    public TabFragmentPagerAdapter(FragmentManager fm, List<Fragment> list,List<String> tlist) {
        super(fm);
        this.mlist = list;
        this.tlist = tlist;
    }
    //显示第几个页面
    @Override
    public Fragment getItem(int position) {
        return mlist.get(position);
    }
    //一共有几个页面,注意,使用Fragment特有的构造器时,和ViewPager的原生构造器的方法不同
    @Override
    public int getCount() {
        return mlist.size();
    }
	//每页返回自己的title
    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return tlist.get(position);
    }
}

创建自己的不同的fragment,这里举个例子

public class JokeFragment extends Fragment {
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.joke,container,false);
        //TextView textView = view.findViewById(R.id.joke);
        return view;
    }
}

在MainActivity中,设置对应的fragment和title,运行即可实现,快去试试吧!

private void init() {
		//添加自己定义的fragment和title
        viewList.add(new QRFragment());
        viewList.add(new OneiromancyFragment());
        viewList.add(new JokeFragment());
        titleList.add("二维码生成");
        titleList.add("周公解梦");
        titleList.add("笑话大全");

        ViewPager vp = (ViewPager) findViewById(R.id.view_page);
        vp.setAdapter(new TabFragmentPagerAdapter(getSupportFragmentManager(),viewList,titleList));
    }

提供一个详细的总结文章

你可能感兴趣的:(AndroidStudio学习笔记(ViewPager))