ViewPager的使用
当第一次使用某个软件时,会一页页地翻,翻了三到五页后,点击立即体验,才会进入这个软件,这就是ViewPager。
需要写一个ViewPagerAdapter,继承PagerAddapter,然后重写他的四个方法。
public class ViewPagerAdapter extends PagerAdapter {
private List<View> views;
public ViewPagerAdapter(List<View> views){
this.views = views;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return views.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
container.removeView(views.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
View view = views.get(position);
container.addView(view);
if(position==2){
Button btn = (Button) view.findViewById(R.id.pager_button);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "点击了按钮", Toast.LENGTH_LONG).show();
}
});
}
return views.get(position);
}
}
xml的编写,需要完整的包名,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.myviewpager.MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</RelativeLayout>
此外,每个页面都是一个xml,比如:
<TextView
android:id="@+id/pager_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="第二个界面"/>
主活动:
public class MainActivity extends Activity {
private ViewPager viewpager;
private List<View> views;
private LayoutInflater mInflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpager = (ViewPager) findViewById(R.id.viewpager);
views = new ArrayList<View>();
mInflater = getLayoutInflater();
View view1 = mInflater.inflate(R.layout.viewpager_item1, null);
View view2 = mInflater.inflate(R.layout.viewpager_item2, null);
View view3 = mInflater.inflate(R.layout.viewpager_item3, null);
views.add(view1);
views.add(view2);
views.add(view3);
ViewPagerAdapter myPager=new ViewPagerAdapter(views);
viewpager.setAdapter(myPager);
}