我的专高一—Day06(ViewPager)

本文详细介绍了在Android Studio中如何使用ViewPager进行页面滑动切换。内容包括如何结合PagerAdapter展示视图,ViewPager的常用方法,以及如何与Fragment结合使用的实践代码解析。
摘要由CSDN通过智能技术生成

目录

ViewPager

1、如何在Aandroid Studio 中展示

(1)如何使用ViewPager+PagerAdapter

(2)练习一:如何使用ViewPager+PagerAdapter完成以下案例

2、ViewPager常用的方法

3、ViewPager和Fragment结合使用(直接上代码)

(1)代码思路


是Android中专门用来实现左右滑动切换View效果的系统控件

1、如何在Aandroid Studio 中展示

PagerAdapter是专门为ViewPager适配数据的适配器,主要方法有:

1、getcount()获取ViewPager显示个数

2、instantiateltem()实例化数据集合在的每一个数据

3、destroyltem()当前项离开屏幕时执行的方法

4、isViewFromObject()判断view和obj是否为同一个View

(1)如何使用ViewPager+PagerAdapter

1、准备ViewPager控件

<android.support.v4.ViewPager/>

2、准备数据源

     LayoutInflater inflater=getLayoutInflater();
      View  view1 = inflater.inflate(R.layout.layout1, null);
       ArrayList<View>()  viewList = new ArrayList<View>();
        viewList.add(view1);
      MyAdapter  myAdapter=new MyAdapter(this,viewList);
        viewPager.setAdapter(myAdapter);

3、自定义MyAdter继承PagerAdapter,重现四个方法

public class MyAdapter extends PagerAdapter {
    public int getCount() {
        return viewList .size();}
    public boolean isViewFromObject(View view, Object object) {
        return view==object; }
public Object instantiateItem(ViewGroup container, int position) {
 return view.addView(viewList.get(position));
}
 public void destroyItem(ViewGroup container, int position, Object object) {
 view.removeView(viewList.get(position)); }

图文讲解

(2)练习一:如何使用ViewPager+PagerAdapter完成以下案例

2、ViewPager常用的方法

方法一:

onPageScrolled(int position, float positionOffset, int positionOffsetPixels)

说明:

页面滑动状态停止前一直调用

常量说明:

position:当前点击滑动页面的位置

positionOffset:当前页面偏移的百分比(一般写0)

positionOffsetPixels:当前页面偏移的像素位置

方法二:

onPageSelected(int position)

说明:

滑动后显示的页面和滑动前不同,调用

常量说明:

position:选中显示页面的位置

方法三:

onPageScrollStateChanged(int state)

说明:

页面状态改变时调用

常量说明:

STATE:当前页面的状态

SCROLL_STATE_IDLE:空闲状态

SCROLL_STATE_DRAGGING:滑动状态

SCROLL_STATE_SETTLING:滑动后滑翔的状态

3、ViewPager和Fragment结合使用(直接上代码)

1、创建Fragment

public class PagerFragment extends Fragment {
    String mContent;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        mContent = (String) getArguments().get("content");
        View view = inflater.inflate(R.layout.fragment_pager, container, false) ;
        TextView textView = (TextView) view.findViewById(R.id.tv);
        textView.setText(mContent);
        return view;
    }
}

2、创建Xml、

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.strivestay.viewpagerdemo.PagerFragment">

    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="18sp"
        android:text="@string/hello_blank_fragment"/>
</FrameLayout>

3、给ViewPager设置数据和适配器

final List<PagerFragment> list = new ArrayList<>();
    for (int i = 0; i < 5; i++) {
        PagerFragment fragment = new PagerFragment();
        Bundle bundle = new Bundle();
        bundle.putString("content","第"+i+"个Fragment");
        fragment.setArguments(bundle);
        list.add(fragment);
    }
    ViewPager vp = (ViewPager) findViewById(R.id.vp);
    vp.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int position) {
            return list.get(position);
        }
        @Override
        public int getCount() {
            return list.size();
        }
    });

(1)代码思路

非常简单,非常的方便

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值