Android第二十天 ViewPager

来源:互联网 发布:.xyz域名价值 编辑:程序博客网 时间:2024/06/05 02:39

 ViewPager的使用步骤:

1.       在布局文件中定义ViewPager控件

      <android.support.v4.view.ViewPager

        android:id="@+id/vp"

       android:layout_width="match_parent"

       android:layout_height="match_parent"

       android:text="@string/hello_world" />

2.       定义viewPager并实例化

       viewPager=(ViewPager) findViewById(R.id.vp);

   

3.       定义数据源

        private List<TextView> view_list= new ArrayList<TextView>();

         private int[] arr_color = new int[] {Color.RED, Color.BLUE, Color.GREEN };

for (int i = 0; i < 3; i++) {

                                TextViewtextView = new TextView(this);

                                textView.setText("第" + (i + 1) + "页");

                                textView.setWidth(LayoutParams.MATCH_PARENT);

                                textView.setHeight(LayoutParams.MATCH_PARENT);

                                 textView.setBackgroundColor(arr_color[i]);

                                view_list.add(textView);

                               

                       }

4.       构建适配器

      public class MyAdapter extendsPagerAdapter{

 

              @Override

              publicint getCount() {

                       //TODO Auto-generated method stub

                       returnview_list.size();

              }

 

              @Override

              publicboolean isViewFromObject(View arg0, Object arg1) {

                       //TODO Auto-generated method stub

                       returnarg0==arg1;

              }

              @Override

              publicObject instantiateItem(ViewGroup container, int position) {

                       //TODO Auto-generated method stub

                       container.addView(view_list.get(position));

                       returnview_list.get(position);

              }

              @Override

              publicvoid destroyItem(ViewGroup container, int position, Objectobject) {

                       container.removeView(view_list.get(position));

              }

         

}

5.       装载数据适配器

         viewPager.setAdapter(new MyAdapter());

6.       设置监听器

       // 为viewPager添加监听器

                   viewPager.setOnPageChangeListener(newOnPageChangeListener() {

 

                            @Override

                            /**

                             *某一页被选择了,就会调用这个方法

                             *

                             *arg0页的id

                             */

                            public voidonPageSelected(int arg0) {

                                     //Toast.makeText(MainActivity.this, "arg0=" + arg0 + "被选择了", 0)

                                     // .show();

                            }

 

                            @Override

                            /**

                             * 当前页面滚动的时候会调用这个方法,只要在滚动就会调用

                             * @param1:滚动页面的id

                             * @param2:相对屏幕的位置值,这个还是相对值,以屏幕的物理尺寸为标准,

                             * @param3:相对屏幕的位置,但是它是绝对值,以像素为单位

                             */

                            public voidonPageScrolled(int arg0, float arg1, int arg2) {

                                     //Toast.makeText(

                                     //MainActivity.this,

                                     //"arg0=" + arg0 + "," + "arg1=" + arg1 +"," + "arg2="

                                     // + arg2,0).show();

                            }

                           

                            @Override

                            /**

                             *某个页面的滚动状态

                             *arg0是状态

                             */

                            public voidonPageScrollStateChanged(int arg0) {

                                     switch(arg0) {

                                     caseViewPager.SCROLL_STATE_DRAGGING:           //正在滚动的状态

                                               Toast.makeText(MainActivity.this,"正在被拖动", 0).show();

                                               break;

                                     caseViewPager.SCROLL_STATE_IDLE:             //这个页面消失了的状态

                                               Toast.makeText(MainActivity.this,"消失了", 0).show();

                                               break;

                                     caseViewPager.SCROLL_STATE_SETTLING:    // 滚动到最后(下一个页面马上就要出来了)

                                               Toast.makeText(MainActivity.this,"到最后了", 0).show();

                                               break;

                                     default:

                                               break;

                                     }

                            }

                   });

 

0 0
原创粉丝点击