博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewPager基础入门
阅读量:5270 次
发布时间:2019-06-14

本文共 2650 字,大约阅读时间需要 8 分钟。

 效果图:

    实现了三个view间的相互滑动

                第一个VIEW向第二个VIEW滑动                       第二个VIEW向第三个VIEW滑动                                                

                              

一、新建项目,引入ViewPager控件

     ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换.

1.在主布局文件里加入:

其中 <android.support.v4.view.ViewPager /> 是ViewPager对应的组件,要将其放到想要滑动的位置

 

 

2.新建三个layout,用于滑动切换视图

布局代码分别如下:

      layout_one.xml

  layout_two.xml

  layout_three.xml

 二.代码实战

package com.nyl.viewpager.activity.viewpager;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class MainActivity extends Activity {    //view1,view2,view3对应我们的三个layout,既layout_one.xml;layout_two.xml;layout_three.xml    private View view1,view2,view3;    //viewList是一个View数组,盛装上面三个View    private List
viewList; //对应的viewPager private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 viewPager = (ViewPager) findViewById(R.id.viewpager); LayoutInflater inflater = getLayoutInflater(); view1 = inflater.inflate(R.layout.layout_one,null); view2 = inflater.inflate(R.layout.layout_two,null); view3 = inflater.inflate(R.layout.layout_three,null); //将要分布显示的view装入数组中 viewList = new ArrayList
(); //将实例化的view1,view2,view3添加的viewList中 viewList.add(view1); viewList.add(view2); viewList.add(view3); PagerAdapter pagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } //返回要滑动的View的个数 @Override public int getCount() { return viewList.size(); } //从当前container(容器)中删除指定位置(position)的View @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } //instantiateItem()做了两件事,第一:将当前视图添加到container中,第二:返回当前View @Override public Object instantiateItem(ViewGroup container, int position){ container.addView(viewList.get(position)); return viewList.get(position); } }; viewPager.setAdapter(pagerAdapter); }}

  

   

 

 

 

转载于:https://www.cnblogs.com/nylcy/p/5311909.html

你可能感兴趣的文章
Factory Design Pattern
查看>>
P1192-台阶问题
查看>>
Java大数——a^b + b^a
查看>>
简单的数据库操作
查看>>
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
电子眼抓拍大解密
查看>>
51nod1076 (边双连通)
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
2019春 软件工程实践 助教总结
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
MacOS copy图标shell脚本
查看>>