ViewPager
1、xml布局文件,注意,是android.support.v4.view.ViewPager,如果想显示title,要在里面嵌套一个android.support.v4.view.PagerTitleStrip
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center" >
<android.support.v4.view.PagerTitleStrip
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
</RelativeLayout>
2、Activity继承Activity即可,
Activity中主要就是找到xml定义的ViewPager,然后设置adapter,重点就是这个adapter
public class MainActivity extends Activity
{
List<View> list;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LayoutInflater layoutInflater =getLayoutInflater().from(this);
View view1 = layoutInflater.inflate(R.layout.v1,null);
View view2 = layoutInflater.inflate(R.layout.v2,null);
View view3 = layoutInflater.inflate(R.layout.v3,null);
list = new ArrayList<View>();
list.add(view1);
list.add(view2);
list.add(view3);
viewPager =(ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new MyAdapter(list));
}
}
3、adapter
继承于PagerAdapter,要实现以下四个方法:
instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)
如果要显示title,那么还要实现以下方法:
public CharSequence getPageTitle(int position)
package com.example.testviewpager;
import java.util.ArrayList;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
public class MyAdapter extends PagerAdapter
{
List<View> list;
List<String> titleList = new ArrayList<String>();
public MyAdapter(List<View> list)
{
this.list = list;
for (int i = 0; i < list.size(); i++)
{
titleList.add("标题" + i);
}
// Log.i("Test","标题是=="+titleLIst);
}
@Override
public int getCount()
{
// TODO Auto-generated method stub
return list.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1)
{
// TODO Auto-generated method stub
Log.i("Test", "isViewFromObject:" + arg0.toString() + " " + arg1.toString());
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
// TODO Auto-generated method stub
Log.i("Test", "instantiateItem:" + container.toString() + " " + position);
((ViewGroup) container).addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
// TODO Auto-generated method stub
Log.i("Test",
"destroyItem:" + container.toString() + " " + position + " " + object.toString());
((ViewGroup) container).removeView(list.get(position));
}
@Override
public CharSequence getPageTitle(int position)
{
// TODO Auto-generated method stub
Log.i("Test", "标题是==" + titleList.get(position));
return titleList.get(position);
}
}
这样,一个简单的ViewPager就完成了