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));
    }

提供一个详细的总结文章

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值