ViewPager的最简单使用

ViewPager的最简单使用方法

我的博客希望大家喜欢

好了,进入正题,今天教大家ViewPager的最简单的实例,首先我们需要几个Fragment,还有一个Activity,这大家应该知道的吧,因为Fragment需要在这个Activity中进行左右滑动,所以…

  • 1.那么首先就来准备几个Fragment,给出其中一个Fragment代码,代码如下:

xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f00">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="160dp"
        android:text="XX"
        android:textSize="25dp"
        android:gravity="center"
        android:textColor="#160943"
        android:background="#d2d2d2"/>
</LinearLayout>

再给出对应的Fragment的代码,Fragment是什么这个大家应该知道吧,其实就是一个一个加载界面的容器,好了,代码如下:

import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by Mr-x on 2016/12/07.
 */

public class Tab1 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab1, container, false);
    }
}

好了,这样一个Fragment就弄好了,就是一个xml文件被一个集成Fragment的类加载了,不过要注意这里的Fragment,有两种,一个是继承android.support.v4.app.Fragment包的,一个继承android.app.Fragment包的,因为最后我们要在主Activity的使用,所以要注意对应。然后我们需要几个Fragment就做几个模仿上面就行,这就不写了。

接下来就是给出Activity的时候了,首先给出主界面布局:
xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:id="@+id/id_viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>
</LinearLayout>

很简单,就一个ViewPager,干什么用的呢,相当于一个容器,来加载布局的,哪些布局呢?就是上面的那些Fragment,但是具体的设置在Activity里面进行,下面给出主Activity代码:
            注意这里的FragmentActivity,一定要这么写,否则等下下面的getSupportFramentManger会找不到

import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;

public class MainActivity extends FragmentActivity
{
    ArrayList<Fragment> arrayList;//用来盛装几个Fragment,等下放进Adapter里面进行适配
    ViewPager viewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化一系列数据
        initView();
    }

    private void initView()
    {
        viewPager = (ViewPager)findViewById(R.id.id_viewpager);
        arrayList = new ArrayList<Fragment>();
        Fragment xTab = new Tab1();
        Fragment yTab = new Tab2();
        Fragment zTab = new Tab3();
        arrayList.add(xTab);
        arrayList.add(yTab);
        arrayList.add(zTab);
        FragmentPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), arrayList);
        viewPager.setAdapter(adapter);//这里进行设置适配器,为了添加前面创建的那几个Fragment到ViewPager里面去,这样的话就可以实现左右滑动了
    }

    //这是一个新型的适配器,有个好处就是加载快,具体原因不解释了,是缓存的问题
    private class ViewPagerAdapter extends FragmentPagerAdapter
    {
        private ArrayList<Fragment> marrayList;
        public ViewPagerAdapter(FragmentManager fm, ArrayList<Fragment> arrayList)
        {
            super(fm);
            marrayList = arrayList;
        }

        //下面这两个函数是必须在这个适配器里面写的,不难,很容易看出来是干什么用的
        @Override
        public Fragment getItem(int position)
        {
            return marrayList.get(position);
        }

        @Override
        public int getCount()
        {
            return marrayList.size();
        }
    }
}

最后再补充一下,如果想手动调用显示的是第几个Fragment,直接调用下面这个函数即可:

viewPager.setCurrenItem(position);

和之前的相比,这里的代码貌似多了一点,但是没办法了,这是最最简便的了,大家耐心看吧,上面的注释已经做的很详细了。

好了,最终的实现已经完成了,给出效果图
这是第一个Fragment
这是第二个Fragment

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值