ViewPage的相关内容

ViewPage相当于一个容器,通过手势左右滑动
需要配置Adapter

  • PagerAdapter 数据源 对应与view的集合 List
  • FragmentPagerAdapter 数据源 对应与fragfment集合 List
  • FragmentStatePagerAdapter 数据源 对应与fragfment集合 List

案例:

第一步:创建四个view.xml,一个activity.xml
第二步:创建一个适配器MyPageAdapter

public class MyPageAdapter  extends PagerAdapter{
    private List viewList;

    public MyPageAdapter(List viewList){
        this.viewList=viewList;
    }

    //返回的页面的数量
    @Override
    public int getCount() {
        return viewList.size();
    }

    //去判断当前view是否来至于对象
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }
//实例化一个页面
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //添加一个viewList所对应的一个view对象
        container.addView(viewList.get(position));
        return viewList.get(position);
    }

    //销毁一个页面
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(viewList.get(position));
    }
}

第三步:进行加载
重要代码:

public class SecondActivity extends AppCompatActivity{
    private List viewList;
    private ViewPager viewPager;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        TextView textView=(TextView)findViewById(R.id.text);
        viewList=new ArrayList();
        View view1=View.inflate(this,R.layout.view1,null);
        View view2=View.inflate(this,R.layout.view2,null);
        View view3=View.inflate(this,R.layout.view3,null);
        View view4=View.inflate(this,R.layout.view4,null);
        viewList.add(view1);
        viewList.add(view2);
        viewList.add(view3);
        viewList.add(view4);
        //初始化viewPage
        viewPager=(ViewPager) findViewById(R.id.page);

        //创建适配器
        MyPageAdapter adapter=new MyPageAdapter(viewList);

        //加载适配器
        viewPager.setAdapter(adapter);

    }
}

给每次页面设计一个标题 放到



    

        
    

在java功能实现里设置样式标题

 //设置标题
        titleList=new ArrayList();
        titleList.add("微信");
        titleList.add("通讯录");
        titleList.add("发现");
        titleList.add("我的");

        //tab初始化
        tabStrip=(PagerTabStrip)findViewById(R.id.tab);
        //标题背景色
        tabStrip.setBackgroundColor(Color.RED);
        //去掉下边框的线
        tabStrip.setDrawFullUnderline(false);
        //设置短小粗线的颜色
        tabStrip.setTabIndicatorColor(Color.GREEN);

也可以设置


注意:PagerTitleStrip与PagerTabStrip不可以一起使用,会发生冲突

最后的结果就是可以实现页面可以滑动到,类似于微信

你可能感兴趣的:(ViewPage的相关内容)