zoukankan      html  css  js  c++  java
  • ViewPager基础入门

     效果图:

        实现了三个view间的相互滑动

                    第一个VIEW向第二个VIEW滑动                       第二个VIEW向第三个VIEW滑动                                                

                                  

    一、新建项目,引入ViewPager控件

         ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换.

    1.在主布局文件里加入:

    其中 <android.support.v4.view.ViewPager /> 是ViewPager对应的组件,要将其放到想要滑动的位置

    <?xml version="1.0" encoding="utf-8"?>
    <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=".MainActivity">
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" />
    </RelativeLayout>
    

    2.新建三个layout,用于滑动切换视图

    布局代码分别如下:

          layout_one.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#edf2e70e">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="这是第一个布局"
            android:textColor="#da0a34"
            android:textSize="18dip"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />
    
    </RelativeLayout>
    

      layout_two.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#2ce297">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="这是第二个布局"
            android:textSize="18dip"
            android:textColor="#be21d2"
            android:layout_gravity="center_horizontal"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="195dp" />
    
    </RelativeLayout>
    

      layout_three.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#2f8bc9">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="这是第三个布局"
            android:textSize="18dip"
            android:textColor="#ffffff"
            android:layout_gravity="center_horizontal"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="206dp" />
    
    </RelativeLayout>
    

     二.代码实战

    package com.nyl.viewpager.activity.viewpager;
    
    import java.util.ArrayList;
    import java.util.List;
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class MainActivity extends Activity {
    
        //view1,view2,view3对应我们的三个layout,既layout_one.xml;layout_two.xml;layout_three.xml
        private View view1,view2,view3;
    
        //viewList是一个View数组,盛装上面三个View
        private List<View> viewList;
    
        //对应的viewPager
        private ViewPager viewPager;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //获取控件
            viewPager = (ViewPager) findViewById(R.id.viewpager);
            LayoutInflater inflater = getLayoutInflater();
            view1 = inflater.inflate(R.layout.layout_one,null);
            view2 = inflater.inflate(R.layout.layout_two,null);
            view3 = inflater.inflate(R.layout.layout_three,null);
    
            //将要分布显示的view装入数组中
            viewList = new ArrayList<View>();
           //将实例化的view1,view2,view3添加的viewList中
            viewList.add(view1);
            viewList.add(view2);
            viewList.add(view3);
    
            PagerAdapter pagerAdapter = new PagerAdapter() {
    
                @Override
                public boolean  isViewFromObject(View arg0, Object arg1) {
                    return arg0 == arg1;
                }
    
                //返回要滑动的View的个数
                    @Override
                public int getCount() {
                    return viewList.size();
                }
    
                //从当前container(容器)中删除指定位置(position)的View
                @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                    container.removeView(viewList.get(position));
                }
    
                //instantiateItem()做了两件事,第一:将当前视图添加到container中,第二:返回当前View
                @Override
            public Object instantiateItem(ViewGroup container, int position){
                    container.addView(viewList.get(position));
                    return viewList.get(position);
                }
                };
            viewPager.setAdapter(pagerAdapter);
    
        }
    }
    

      

       

     

  • 相关阅读:
    section_4.python操作mysqlsql注入导入导出数据库
    section_3.单表多表查询
    section_2.约束索引存储引擎
    Section_1.Mysql基础
    day7.线程-线程队列进程池和线程池回调函数协程
    Mysql小技巧总汇
    常用对照表的参考_chapter-one(Content-Type)
    ORACLE 数据库配置
    Shiro入门(用户权限控制)
    Quartz定时任务调度机制解析(CronTirgger、SimpleTrigger )
  • 原文地址:https://www.cnblogs.com/nylcy/p/5311909.html
Copyright © 2011-2022 走看看