ViewPager的簡(jiǎn)單使用

很多app在第一次進(jìn)入軟件的時(shí)候都會(huì)有一個(gè)引導(dǎo)用戶的滑動(dòng)頁(yè)面谍倦,三頁(yè)到五頁(yè)不等
如下效果:


demoViewPager.gif

這里采用的是viewPager實(shí)現(xiàn)

首先上java代碼目錄結(jié)構(gòu):(就兩個(gè)Activity啊胶,主要是GuideActivity)


image.png

然后是XML:


image.png

代碼
GuideActivity:

import android.content.Intent;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import java.util.ArrayList;
import java.util.List;

public class GuideActivity extends AppCompatActivity {
  private ViewPager viewPager;

  private List<View> list;//定義一個(gè)View的集合
  private View view1;
  private View view2;
  private View view3;//定義三個(gè)View
@Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_guide);

      //初始化viewPager組件
      viewPager = findViewById(R.id.viewPager);

      //布局填充器
      LayoutInflater inflater = LayoutInflater.from(this);

      //初始化list
      list = new ArrayList<>();

      //初始化三個(gè)View并添加到集合中
      view1 = inflater.inflate(R.layout.view1,null);
      view2 = inflater.inflate(R.layout.view2,null);
      view3 = inflater.inflate(R.layout.view3,null);
      list.add(view1);
      list.add(view2);
      list.add(view3);
     //初始化進(jìn)入按鈕笆载,view3頁(yè)面的按鈕,通過(guò)view3.findViewById()
      Button enterBtn = view3.findViewById(R.id.enterBtn);

      //進(jìn)入按鈕的監(jiān)聽事件
      enterBtn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              startActivity(new Intent(GuideActivity.this,MainActivity.class));
              finish();
          }
      });

      /**
       * ViewPager的適配器
       * 一般復(fù)寫getCount驳糯、isViewFromObject咕宿、destroyItem弓坞、instantiateItem即可
       */
      PagerAdapter pagerAdapter = new PagerAdapter() {
          /**
           * 滑動(dòng)視圖的個(gè)數(shù)
           * @return
           */
          @Override
          public int getCount() {
              return list.size();
          }
/**
           * 如果對(duì)應(yīng)的是同一個(gè)View参滴,返回True模燥,否則返回False
           * @param view
           * @param object
           * @return
           */
          @Override
          public boolean isViewFromObject(View view, Object object) {
              return view == object;
          }

          /**
           * 移除指定位置的視圖
           * @param container
           * @param position
           * @param object
           */
          @Override
          public void destroyItem(ViewGroup container, int position, Object object) {
              container.removeView(list.get(position));
          }
/**
           * 創(chuàng)建指定位置的頁(yè)面視圖并返回
           * @param container
           * @param position
           * @return
           */
          @Override
          public Object instantiateItem(ViewGroup container, int position) {
              container.addView(list.get(position));
              return list.get(position);
          }
      };

      //適配viewPager
      viewPager.setAdapter(pagerAdapter);
  }
}

MainActivity是空的咖祭,就不貼代碼了

activity_guide.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <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>

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.demo.kinsin.demoviewpager.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/welcome"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:textSize="26sp"/>

</android.support.constraint.ConstraintLayout>

view3:(view1和view2比view3少個(gè)button,其他的都一樣)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textSize="26sp"
        android:text="@string/viewPager3"/>

    <Button
        android:id="@+id/enterBtn"
        android:layout_width="120dp"
        android:layout_height="50dp"
        android:text="@string/enterBtn"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="50dp"
        android:layout_centerHorizontal="true"/>

</RelativeLayout>

代碼+注釋蔫骂,理解應(yīng)該不難了么翰,如有錯(cuò)誤,請(qǐng)不吝指出辽旋,謝謝浩嫌!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市补胚,隨后出現(xiàn)的幾起案子码耐,更是在濱河造成了極大的恐慌,老刑警劉巖溶其,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骚腥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瓶逃,警方通過(guò)查閱死者的電腦和手機(jī)束铭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門廓块,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人契沫,你說(shuō)我怎么就攤上這事带猴。” “怎么了埠褪?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵浓利,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我钞速,道長(zhǎng)贷掖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任渴语,我火速辦了婚禮苹威,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘驾凶。我一直安慰自己牙甫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布调违。 她就那樣靜靜地躺著窟哺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪技肩。 梳的紋絲不亂的頭發(fā)上且轨,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音虚婿,去河邊找鬼旋奢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛然痊,可吹牛的內(nèi)容都是我干的至朗。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼剧浸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锹引!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起唆香,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤粤蝎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后袋马,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體初澎,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碑宴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片软啼。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖延柠,靈堂內(nèi)的尸體忽然破棺而出祸挪,到底是詐尸還是另有隱情,我是刑警寧澤贞间,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布贿条,位于F島的核電站,受9級(jí)特大地震影響增热,放射性物質(zhì)發(fā)生泄漏整以。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一峻仇、第九天 我趴在偏房一處隱蔽的房頂上張望公黑。 院中可真熱鬧,春花似錦摄咆、人聲如沸凡蚜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朝蜘。三九已至,卻和暖如春涩金,著一層夾襖步出監(jiān)牢的瞬間芹务,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工鸭廷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人熔吗。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓辆床,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親桅狠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子讼载,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容