ViewPage第一课

来源:互联网 发布:股票训练软件 编辑:程序博客网 时间:2024/04/28 02:44
第一步:
在布局文件中加入:因为android.support.v4.view是扩展包所以要使用<android.support.v4.view.ViewPager这种形式,以后自定
义view时也要使用这种形式


  <android.support.v4.view.ViewPager
        android:id="@+id/vp_viewpage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
   </android.support.v4.view.ViewPager>


第二步:

创建4个布局文件:page01.xml,page02,page03,page04

<?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:background="#8A2BE2"    android:orientation="vertical" >    <TextView        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:gravity="center"        android:text="page01"        android:textSize="40sp" >    </TextView></LinearLayout>




第三步:

MainActivity 中:

public class MainActivity extends Activity {private ViewPager viewpager;private List<View> children;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewpager = (ViewPager) findViewById(R.id.vp_viewpage);children = new ArrayList<View>();children.add(LayoutInflater.from(this).inflate(R.layout.page01, null));children.add(getLayoutInflater().inflate(R.layout.page02, null));children.add(getLayoutInflater().inflate(R.layout.page03, null));children.add(getLayoutInflater().inflate(R.layout.page04, null));viewpager.setAdapter(new InnerPagerAdapter());}public class InnerPagerAdapter extends PagerAdapter{@Overridepublic int getCount() {//获取子级布局的数量return children.size();//返回viewpage容器中子级布局的个数,}@Overridepublic boolean isViewFromObject(View view, Object object) {// 判断某个View对象是否为当前被添加到ViewPager容器中的对象return view == object;}//下面两个方法是PageAdapter中必须实现的非抽象方法@Overridepublic Object instantiateItem(ViewGroup container, int position) {// 实例化ViewPager容器中指定的position位置需要显示的View对象View view = children.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {//在ViewPager中移除指定的position位置的View对象container.removeView(children.get(position));}}}


0 0
原创粉丝点击