ViewPager 和 PagerAdapter简单例子

来源:互联网 发布:mac airdrop在哪 编辑:程序博客网 时间:2024/05/22 03:42

定义了 3个简单的布局

效果图

//

当你实现一个PagerAdapter时,至少需要重写以下几个方法:

  • instantiateItem(ViewGroup, int)
  • destroyItem(ViewGroup, int, Object)
  • getCount()
  • isViewFromObject(View, Object)

package com.example.daohang;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import android.view.ViewGroup;public class MainActivity extends Activity {private List<View> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ViewPager pager = (ViewPager) findViewById(R.id.pager);list=new ArrayList<View>();View v1=LayoutInflater.from(this).inflate(R.layout.page01, null);View v2=LayoutInflater.from(this).inflate(R.layout.page02, null);View v3=LayoutInflater.from(this).inflate(R.layout.page03, null);list.add(v1);list.add(v2);list.add(v3);/*PageAdapter 必须重写的四个函数:    boolean isViewFromObject(View arg0, Object arg1)    int getCount()     void destroyItem(ViewGroup container, int position,Object object)    Object instantiateItem(ViewGroup container, int position)*/PagerAdapter adapter=new PagerAdapter() {/*sViewFromObject():对于这个函数就先不做讲解,大家目前先知道它要这样重写就行了,后面我们会对它进行改写。*/@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0==arg1;}//getCount():返回要滑动的VIew的个数@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}//instantiateItem():做了两件事,第一:将当前视图添加到container中,//第二:返回当前View@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(list.get(position));return list.get(position);}//destroyItem():从当前container中删除指定位置(position)的View;@Overridepublic void destroyItem(ViewGroup container, int position,Object object) {// TODO Auto-generated method stub//super.destroyItem(container, position, object);container.removeView(list.get(position));}};pager.setAdapter(adapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

//布局代码 3个  贴一个 其他都一样 只是 背景颜色不同

<?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:background="#f00">    </LinearLayout>


0 0
原创粉丝点击