整理一下appintro的简单用法

来源:互联网 发布:网络用语皮皮虾 编辑:程序博客网 时间:2024/06/13 13:47

https://github.com/apl-devs/AppIntro/issues/264

在添加之前会出现这样的一个错误。

ArrayIndexOutOfBoundsException
需要删除的appintro的oncrate方法中的
PersistentBundle

remove PersistentBundle argument from your OnCreate method.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

https://github.com/apl-devs/AppIntro/wiki/How-to-Use#show-the-intro-once

这是官网的教程。


@0 添加 根目录下的

allprojects {    repositories {        jcenter()        maven { url 'https://jitpack.io' }    }}app目录下的

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:25.3.1'    compile 'com.github.apl-devs:appintro:v4.2.0'}


@1 生成一个SampleSlide文件。https://github.com/apl-devs/AppIntro/blob/master/example/src/main/java/com/amqtech/opensource/appintroexample/util/SampleSlide.java

import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class SampleSlide extends Fragment {    private static final String ARG_LAYOUT_RES_ID = "layoutResId";    private int layoutResId;    public static SampleSlide newInstance(int layoutResId) {        SampleSlide sampleSlide = new SampleSlide();        Bundle args = new Bundle();        args.putInt(ARG_LAYOUT_RES_ID, layoutResId);        sampleSlide.setArguments(args);        return sampleSlide;    }    @Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        if (getArguments() != null && getArguments().containsKey(ARG_LAYOUT_RES_ID)) {            layoutResId = getArguments().getInt(ARG_LAYOUT_RES_ID);        }    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,                             @Nullable Bundle savedInstanceState) {        return inflater.inflate(layoutResId, container, false);    }}


@2新建一个引导页文件

import android.os.Bundle;import android.os.PersistableBundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import com.github.paolorotolo.appintro.AppIntro;/** * Created by mt on 6/19/17. */public class appintros extends AppIntro {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addSlide(SampleSlide.newInstance(R.layout.slideone));        addSlide(SampleSlide.newInstance(R.layout.slidetwo));        addSlide(SampleSlide.newInstance(R.layout.slidethree));       // setFadeAnimation();        setFlowAnimation();       showSkipButton(false);      //  showDoneButton(false);        //showSkipButton(false);    }    @Override    public void onSkipPressed(Fragment currentFragment) {        super.onSkipPressed(currentFragment);        //finish();    }    @Override    public void onDonePressed(Fragment currentFragment) {        super.onDonePressed(currentFragment);        finish();    }    @Override    public void onSlideChanged(@Nullable Fragment oldFragment, @Nullable Fragment newFragment) {        super.onSlideChanged(oldFragment, newFragment);       // finish();//这里需要注释掉
    }}

并添加到配置文件中。

@3 主文件让引导页显示一次。

        Thread t = new Thread(new Runnable() {            @Override            public void run() {                //  Initialize SharedPreferences                SharedPreferences getPrefs = PreferenceManager                        .getDefaultSharedPreferences(getBaseContext());                //  Create a new boolean and preference and set it to true                boolean isFirstStart = getPrefs.getBoolean("firstStart", true);                //  If the activity has never started before...                if (isFirstStart) {                    //  Launch app intro                    Intent intent = new Intent(MainActivity.this, appintros.class);                    startActivity(intent);                    //  Make a new preferences editor                    SharedPreferences.Editor e = getPrefs.edit();                    //  Edit preference to make it false because we don't want this to run again                    e.putBoolean("firstStart", false);                    //  Apply changes                    e.apply();                }            }        });        // Start the thread        t.start();


@4j最后新建引导页布局文件即可。