android使用ViewPager實現歡迎引導頁

來源:互聯網
上載者:User

標籤:android   viewpager   引導頁   

android使用ViewPager實現歡迎引導頁大多數APP第一次啟動的時候,都會有一個引導介面,左右滑動,到最後一張,使用者點擊才再次進入主介面。當第二次啟動的時候,則直接進入主介面。 這種效果一般使用ViewPager實現。今天就來為大家介紹一下ViewPager的使用。實現步驟:使用SharedPerferences來記錄是否是第一次啟動APP,如果是,則轉跳到Guide頁面,如果不是第一次啟動。就轉跳到主Activity.MainActivity:本Activity作為Logo頁面進入,使用handler來實現頁面的延遲專跳。對於handler還不太瞭解的同學,可以來這裡學習一下安卓的非同步訊息傳遞機制:http://blog.csdn.net/guolin_blog/article/details/9991569 (感謝郭神帶來好文章)
private Handler mHandler = new Handler(){        @Override        public void handleMessage(Message msg) {            switch (msg.what){                case MAIN:                    Intent intent = new Intent(MainActivity.this,Main.class);                    startActivity(intent);                    finish();                    break;                case GUIDE:                    Intent intent2 = new Intent(MainActivity.this,GuideView.class);                    startActivity(intent2);                    finish();                    break;            }        }    };

此外使用SharedPreferences來讀取使用者啟動資訊

mSharedPreferences = getSharedPreferences("conf",MODE_PRIVATE);isFirst = mSharedPreferences.getBoolean("first",true);

之後進行簡單的判斷,這裡不在累贅。

GuideActivity

這個介面是引導頁的介面,我們首先在其布局檔案下添加一個ViewPager之後在java檔案中擷取到這個ViewPager,並為這個ViewPager添加一個適配器。 這個適配器需要自己繼承PagerAdapter來重寫,稍後會進行講解。

 mViewPager = (ViewPager) findViewById(R.id.viewpager);        ViewPagerAdapter adapter = new ViewPagerAdapter(mList);        mViewPager.setAdapter(adapter);

注意這個Adapter的傳入參數是一個泛型為View的List。我們先向List裡添加我們的View,再為最後一個view的Button添加監聽事件,用來轉跳到首頁面;

mList = new ArrayList<>();View view = LayoutInflater.from(this).inflate(R.layout.layout1,null);        mList.add(view);        view = LayoutInflater.from(this).inflate(R.layout.layout2,null);        mList.add(view);        view = LayoutInflater.from(this).inflate(R.layout.layout3,null);        mList.add(view);        mButton = (Button) view.findViewById(R.id.button_enter);        mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent intent = new Intent(GuideView.this,Main.class);                startActivity(intent);                finish();            }        });
ViewPagerAdapter

這是ViewPager的適配器,繼承於PagerAdapter,主要實現兩個方法:
destroyItem();
instantiateItem();
顧名思義一個是view去掉時候的方法,一個是添加view的方法。
這裡可以看到一個很熟悉的參數 container,沒錯,和baseAdapter的參數很像,都是用來緩衝當前view的。接下來只需要調用他的removeView和addView即可。需要注意的是,需要向下轉型為ViewPager。

 public void destroyItem(ViewGroup container, int position, Object object) {        ((ViewPager)container).removeView(mList.get(position));    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        Log.i("wing","viewAdatper here");        ((ViewPager)container).addView(mList.get(position));        return mList.get(position);    }

另外不要忘記重寫他的構造方法。傳入一個泛型為view的List

    public ViewPagerAdapter(ArrayList list){        mList = list;    }

這樣適配器就完成了,大家自己多寫幾遍就會熟練。對了,別忘了給每個view一個布局檔案。

下面看看:

源碼

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

android使用ViewPager實現歡迎引導頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.