viewPager

原创 2015年11月18日 23:51:18

ViewPager的功能就是可以使视图滑动,就像Lanucher左右滑动那样。

所以我们可以用它来做一个app引导界面。

效果图如下:




实现步骤:

1、主界面布局中创建VIewPager。

2、加载各个界面的View。

3、设置PagerAdapter.

注意:

当你实现一个PagerAdapter,你必须至少覆盖以下方法:

下面是官方文档的原话:



实现代码:

MainActivity:


public class MainActivity extends Activity {

	private ViewPager mviewPager;
	private View view1, view2, view3;
	private List<View> viewList;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.viewpager);
		initView();
		
		PagerAdapter mpagerAdapter = new PagerAdapter() {  
			  
	        @Override  
	        public boolean isViewFromObject(View arg0, Object arg1) {  

	            return arg0 == arg1;  
	        }  

	        @Override  
	        public int getCount() {  

	            return viewList.size();  
	        }  

	        @Override  
	        public void destroyItem(ViewGroup container, int position,  
	                Object object) {  
	            container.removeView(viewList.get(position));  

	        }  

	        @Override  
	        public int getItemPosition(Object object) {  

	            return super.getItemPosition(object);  
	        }  

	       
	        @Override  
	        public Object instantiateItem(ViewGroup container, int position) {  
	            container.addView(viewList.get(position));  
	           
	            return viewList.get(position);  
	        }  

	    };  
		mviewPager.setAdapter(mpagerAdapter);
	}

	void initView() {
		mviewPager = (ViewPager) findViewById(R.id.viewPager);
		viewList = new ArrayList<View>();
		
		LayoutInflater layoutInflate = getLayoutInflater().from(this);

		view1 = layoutInflate.inflate(R.layout.layout1, null);
		view2 = layoutInflate.inflate(R.layout.layout2, null);
		view3 = layoutInflate.inflate(R.layout.layout3, null);

		viewList.add(view1);
		viewList.add(view2);
		viewList.add(view3);
		
pagerAdapter);
	}

2、主布局:main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

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

3、各个被加载的子布局,这里只给出一个,另外两个布局代码一样只是名字不同。

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

    <ImageView
        android:id="@+id/iamge"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/a" />

</LinearLayout>

上面是一个入门级的例子,接下来几篇会讲一些更加深入有技术性的例子。微笑



版权声明:本文为博主原创文章,转载请注明出处

相关文章推荐

Viewpager切换时pager页面的生命周期变化

总结1: 当我们把ViewPager和Fragment合用的时候,切换页面时生命周期会发生相应的变化,变化规律:加载当前页面、前一个页面和后一个页面,我们来看一个实际测试效果图 打开应用会加载第一个...

fragment嵌套viewPager中放fragment

  • 2017年11月14日 11:27
  • 128KB
  • 下载

ViewPager切换过来后,组件没有重新加载

在public void onCheckedChanged(RadioGroup radioGroup, int CheckedId) 这个方法中还需要重新生成页面就行了 package com.e...

以Pager的形式填充到ViewPager

  • 2017年11月22日 13:43
  • 7.2MB
  • 下载

viewpager嵌套多个Fragment并处理点击事件

前记: 本身自己对于fragment了解的就不太多,当自己半路插进项目组开始继续开发的时候,我发现了viewpager+fragment   而且做这个功能的那哥们儿告诉我说就差点击事件没实现了、、 ...

Android中可无限循环轮播的ViewPager

  • 2017年03月19日 20:56
  • 26.61MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:viewPager
举报原因:
原因补充:

(最多只允许输入30个字)