关于ViewPager的初步理解

  关于ViewPager我只是做了简单最基本的功能。我看了好多资料,关于ViewPager以后的用处会非常大,在这里先了解一下什么是ViewPager。

关于ViewPager就是手指滑动时,能从一个界面滑动到另一个界面。效果如下:





下面是Layoutde 的代码:

<?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:orientation="vertical" >
   <android.support.v4.view.ViewPager
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:id="@+id/pager"
       >
       <android.support.v4.view.PagerTabStrip 
           android:layout_width="wrap_content"
      	   android:layout_height="wrap_content"
           android:layout_gravity="top"
           android:id="@+id/tab"
           >
           </android.support.v4.view.PagerTabStrip>
	</android.support.v4.view.ViewPager>
</LinearLayout>



下面是Activity的代码:

package com.example.viewpager;

import java.util.ArrayList;
import java.util.List;

import com.example.tab.R;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.PagerTitleStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.view.View;

public class test_viewpager extends ActionBarActivity{

		private List<View>viewList;
		private ViewPager pager;
		private List<String> titleList;
		private PagerTabStrip tab;
		
		@Override
		protected void onCreate(Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			super.onCreate(savedInstanceState);
			setContentView(R.layout.viewpager_main);
			
			//定义一个类型为View型的数组
			viewList = new ArrayList<View>();
			
			
			//把相应的布局转化为View型
			View view1 = View.inflate(getApplicationContext(), R.layout.viewpager1, null);
			View view2 = View.inflate(getApplicationContext(), R.layout.viewpager2, null);
			View view3 = View.inflate(getApplicationContext(), R.layout.viewpager3, null);
			
			//把转化过的布局一个个添加到viewList数组里
			viewList.add(view1);
			viewList.add(view2);
			viewList.add(view3);
			
			//为每一个view定义标题,把这些标题放入到数组里面
			titleList = new ArrayList<String>();
			//为页卡增加标题
			titleList.add("第一页");
			titleList.add("第二页");
			titleList.add("第三页");
			
			
			//为PagerTabStrip设置一些属性,为标题设置一些属性
			tab = (PagerTabStrip) findViewById(R.id.tab);
			tab.setBackgroundColor(Color.GRAY);//为标题设置背景颜色
			tab.setTextColor(Color.RED);//设置 标题的字体颜色
			tab.setDrawFullUnderline(false);//标题框中没有最下面的一道线
			tab.setTabIndicatorColor(Color.BLUE);//设置滑动时那个小线线
			//创建pageradapter适配器
			MyAdapter adapter = new MyAdapter(viewList,titleList);//这里用的适配器是我们自定义的适配器
			//初始化ViewPager
			pager = (ViewPager) findViewById(R.id.pager);
		
			//ViewPager加载适配器
			pager.setAdapter(adapter);
			
			
		}
}




下面是自定义Adapter的代码:



package com.example.viewpager;

import java.util.List;

import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

public class MyAdapter extends PagerAdapter{

	
	private List<View>viewList;
	private List<String>titleList;
	
	public MyAdapter(List<View>viewList,List<String>titleList){
		this.viewList = viewList;
		this.titleList = titleList;
	}
	
	/*
	 * 返回的是页卡的数量
	 * */
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return viewList.size();
	}

	@Override
	
	/*
	 * View是否来自于对象
	 * */
	public boolean isViewFromObject(View arg0, Object arg1) {
		// TODO Auto-generated method stub
		return arg0 == arg1;
	}
	
	
	/*
	 * 实例化一个页卡
	 * 
	 * */
	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		// TODO Auto-generated method stub
		container.addView(viewList.get(position));
		return viewList.get(position);
	}
	
	@Override
	/*
	 * 销毁一个页卡
	 * */
	public void destroyItem(ViewGroup container, int position, Object object) {
		// TODO Auto-generated method stub
		container.removeView(viewList.get(position));
	
	}
	
	/*
	 * 设置ViewPager页卡的标题
	 * 
	 * */
	@Override
	public CharSequence getPageTitle(int position) {
		// TODO Auto-generated method stub
		return titleList.get(position);
	}
	

}



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值