Creating onboarding Screens for Android Apps
24
Del
4
Del
Dette Cyber mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av.
Hva du skal lage
Innledning
Det tar ikke et geni for å forstå at en app som gjør at nye brukere føler seg velkommen og komfortabel er sannsynlig å nyte en mye mer populært enn en som etterlater dem tapt og forvirret. Som et resultat av mange utviklere i disse dager er i ferd med å sikre at brukerne har en fin onboarding opplevelse.
Hvis du utvikler en innovativ app som funksjonalitet og bruksområder kan ikke være opplagt til nye brukere, bør du vurdere å legge noen Forsyning skjermer til programmet ditt. I denne opplæringen vil jeg vise deg en enkel måte å raskt opprette og legge slike skjermer til din Android-app.
1. Legg Gradle Avhengig
Først legger den Material Design Library som kompilere avhengighet til build.gradle fil av programmet modul, slik at du kan bruke brukergrensesnitt elementer av Android L i eldre versjoner av Android. Anmeldelser kompilere 'com.github.navasmdc: MaterialDesign: 1.5@aar'
Deretter legger en compile avhengighet for SmartTabLayout, et bibliotek som tilbyr et egendefinert tittel stripe element for ViewPager komponent
kompilere 'com.ogaclejapan.smarttablayout. : bibliotek: 1.2.1@aar '
Vi vil også bruke klasser som hører til Android Support v4 Library. Men, trenger du ikke å legge det manuelt, fordi Android Studio legger det som standard.
2. Definer Oppsett av Onboarding aktivitet
onboarding aktivitet vil være ansvarlig for å vise alle onboarding skjermer. Derfor vil denne aktiviteten har følgende widgets:.
En ButtonFlat merket Skip , som lar utålmodige brukere å hoppe over onboarding prosessen.
En ButtonFlat, Next, som tar brukeren til neste onboarding skjermen.
En SmartTabLayout som fungerer som en side indikator for ViewPager komponent .
Etter å sette disse widgets i en RelativeLayout og plassere dem, bør koden i oppsettet XML fil av onboarding Activity se slik ut:?
< xml version = "1.0" encoding = "utf-8" > < RelativeLayout xmlns:? android = "http://schemas.android.com/apk/res/android~~number=plural" xmlns: app = "http://schemas.android.com/apk/res-auto "android: layout_width =" match_parent "android: layout_height =" match_parent "> < android.support.v4.view.ViewPager android: layout_width = "match_parent" android: layout_height = "match_parent" android: id = "+ id /personsøker" /> < LinearLayout android: layout_width = "match_parent" android: layout_height = "wrap_content" android: layout_alignParentBottom = "true" android: id = "+ id /navigasjonen" > < com.gc.materialdesign.views.ButtonFlat android: layout_width = "0DP" android: layout_height = "wrap_content" android: layout_weight = "0.5" android: text = "Skip" android: id = "+ id /hoppe" /> < com.gc.materialdesign.views.ButtonFlat android: layout_width = "0DP" android: layout_height = "wrap_content" android: layout_weight = "0.5" android: text = "Next" android: id = "+ id /neste" /> < /LinearLayout > < com.ogaclejapan.smarttablayout.SmartTabLayout android: id = "+ id /indikator" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_above = "+ id /navigation" android: layout_marginBottom = " 20dp "android: layout_centerHorizontal =" true "app: stl_dividerThickness =" 0DP "app: stl_indicatorColor =" # 1e88e5 "/> < /RelativeLayout >
Ta gjerne endre oppsettet for å matche dine preferanser. Jeg vil kalle dette oppsettet filen activity_onboarding.xml.
3. Definer oppsett av onboarding Screens
For denne opplæringen, vil du være å skape tre onboarding skjermer. For å holde opplæringen enkel, vil skjermene har bare to TextView widgets. I en ekte app, bør du også bestrebe seg på å holde onboarding skjermene så enkelt som mulig for å unngå at nye brukere er overveldet når de åpner appen for første gang.
Oppsettet XML-fil av den første skjermen er heter onboarding_screen1.xml og har følgende innhold:?
< xml version = "1.0" encoding = "UTF-8" > < LinearLayout xmlns:? android = "http://schemas.android.com/apk /res /android "android: orientering =" vertikal "android: layout_width =" match_parent "android: layout_height =" match_parent "android: padding =" 16dp "android: vekt =" center_horizontal "> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Velkommen!" android: Tekststørrelse = "48sp" android: layout_marginTop = "50dp" /> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: Tekststørrelse = "24sp" android: layout_marginTop = "20dp" android: text = ". Du ser ut til å være en ny bruker" /> < /LinearLayout >
Bruk samme XML i oppsettet filer av de to andre skjermene og navngi dem onboarding_screen2.xml og onboarding_screen3.xml. Selvfølgelig bør du endre teksten tilhører hver TextView widget slik at hver onboarding skjermen er unik.
4. Lag en Fragment for hver Onboarding Screen
Opprett en ny Java klasse og name it OnboardingFragment1.java. Gjør det til en underklasse av Fragment og overstyre sin onCreateView metoden. Deretter kaller blåses metode for å lage en visning ved hjelp av oppsettet vi definert i onboarding_screen1.xml og returnere View. Klassen din skal se slik ut:
public class OnboardingFragment1 strekker Fragment {NullableOverride offentlig Vis onCreateView (LayoutInflater inflater, ViewGroup container, Bundle s) {return inflater.inflate (R.layout.onboarding_screen1, container, false); }}
Fragment for din første onboarding skjermen er nå klar. Følg samme fremgangsmåte for å lage to mer Fragmentunderklasser, OnboardingFragment2.java og OnboardingFragment3.java, som bruker oppsettene definert i onboarding_screen2.xml og henholdsvis onboarding_screen3.xml.
5. Opprett Onboarding aktivitet
Opprett en ny Java-klassen og gi den navnet OnboardingActivity.java. . Gjør det til en underklasse av FragmentActivity og overstyre sin onCreate metode
public class OnboardingActivity strekker FragmentActivity {Override beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); }}
Neste, erklærer en ViewPager, en SmartTabLayout, og to ButtonFlat widgets som medlem variabler i klassen
private ViewPager øker;. privat SmartTabLayout indikator; privat ButtonFlat hoppe, privat ButtonFlat neste;
I onCreate metode, ring setContentView å vise oppsettet definert i activity_onboarding.xml og bruke findViewById metode for å initialisere medlem variabler
setContentView (R.layout.activity_onboarding);. øker = (ViewPager) findViewById (R.id.pager); indikator = (SmartTabLayout) findViewById (R.id.indicator), skip = (ButtonFlat) findViewById (R.id.skip), next = (ButtonFlat) findViewById (R.id.next);
Du må nå opprette en FragmentStatePagerAdapter at ViewPager kan bruke til å vise onboarding skjermer. Opprett en ny variabel av typen FragmentStatePagerAdapter og gi den navnet adapter. Initialisere den ved å sende resultatet av getSupportFragmentManager metoden til konstruktøren. Fordi det er en abstrakt klasse, vil Android Studio automatisk generere koden for abstrakte metoder som vist nedenfor.
FragmentStatePagerAdapter adapter = new FragmentStatePagerAdapter (getSupportFragmentManager ()) {Override offentlig Fragment getItem (int posisjon) {}Override public int getCount () {}};.
I getCount metoden returnere antall Forsyning skjermer
Overridepublic int getCount () {return 3;}
Legg til en bryter uttalelse til getItem metode for å returnere riktig . Fragment basert på verdien av posisjon
Overridepublic Fragment getItem (int posisjon) {switch (stilling) {case 0: returnere nye OnboardingFragment1 (); case 1: returnere nye OnboardingFragment2 (); case 2: returnere nye OnboardingFragment3 (); standard: retur null; }}
Fortsatt i onCreate metoden, knytte FragmentStatePagerAdapter med ViewPager ved å ringe setAdapter metoden
pager.setAdapter (adapter);.
Nå som ViewPager er klar, peker SmartTabLayout til det ved å ringe . den setViewPager metoden
indicator.setViewPager (personsøker);
Det er nå på tide å legge klikk handlers til ButtonFlat widgets. Du kan gjøre det ved hjelp av setOnClickListener metoden, passerer en ny forekomst av View.OnClickListener klassen til den.
I føreren av skip-knappen, kaller en metode som heter finishOnboarding. Vi vil implementere denne metoden i neste trinn.
I føreren av neste-knappen, bruk setCurrentItem sammen med getCurrentItem å flytte til neste onboarding skjermen. Også, hvis getCurrentItem returnerer den siste onboarding skjermen, kaller en metode som heter finishOnboarding. Vi vil implementere denne metoden i et øyeblikk
Koden for handlers av knappene skal se slik ut:.
Skip.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {finishOnboarding ();}}); next.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {if (pager.getCurrentItem () == 2) {//Den siste skjermen finishOnboarding ();} else {pager.setCurrentItem (pager.getCurrentItem () + 1, true);}}});
Det kan være lurt å gjøre noen endringer i oppsettet av onboarding aktivitet, for eksempel fjerning av skip knappen og endre etiketten på neste-knappen for å Ferdig når brukeren kommer den siste onboarding skjermen. Du kan gjøre det ved å legge til en SimpleOnPageChangeListener til SmartTabLayout og overordnede sin onPageSelected metoden.
Indicator.setOnPageChangeListener (ny ViewPager.SimpleOnPageChangeListener () {Override public void onPageSelected (int posisjon) {if (posisjon == 2) {hoppe .setVisibility (View.GONE); next.setText ("Ferdig");} else {skip.setVisibility (View.VISIBLE); next.setText ("Next");}}});
6. Avslutte Onboarding Erfaring
Når brukeren har sett alle onboarding skjermene, eller valgte å hoppe over dem, bør du avslutte onboarding opplevelsen ved å ringe finishOnboarding metode (det er navnet vi brukte i forrige trinn).
I finishOnboarding metoden, få en henvisning til SharedPreferences objekt av programmet og sette en boolsk for nøkkelen onboarding_complete å true med putBoolean metoden. Vi skal bruke denne nøkkelen i neste trinn for å sørge for at brukerne ser onboarding skjermene bare hvis de ikke har fullført onboarding prosessen.
Deretter oppretter du en ny intensjonsavtale og ringe startActivity metode for å starte Hoved Activity (Aktivitet som skal åpnes når brukeren klikker appikonet).
Til slutt ringe slutt å lukke OnboardingActivity. Det er hva gjennomføringen av finishOnboarding metoden skal se slik ut:
private void finishOnboarding () {//Få de delte preferanser SharedPreferences preferences = getSharedPreferences ("my_preferences", MODE_PRIVATE); //Sett onboarding_complete å true preferences.edit () .putBoolean ("onboarding_complete", true) .apply (); //Start viktigste aktivitet, kalt MainActivity Intent hoved = new Intent (dette, MainActivity.class); startActivity (hoved); //Lukk OnboardingActivity finish ();}
7. Starte Onboarding aktivitet
onboarding aktivitet bør starte så tidlig som mulig hvis en bruker som ikke har fullført onboarding prosess åpner appen. Dette betyr at du kommer til å legge inn koden for å oppdage nye brukere og lanserer OnboardingActivity i onCreate metode for appen din viktigste aktivitet.
Ved å sjekke om de SharedPreferences objekt har en nøkkel kalt onboarding_complete hvis verdi er sant, kan du avgjøre om brukeren har avsluttet onboarding prosessen. Hvis verdien av nøkkelen er falsk, lukke hoved aktivitet umiddelbart og opprette en ny intensjonsavtale for å lansere OnboardingActivity. Ta en titt på følgende kodeblokken til bedre å forstå dette konseptet
//Få de delte preferencesSharedPreferences preferences = getSharedPreferences ("my_preferences", MODE_PRIVATE);. //Sjekk om onboarding_complete er usann hvis (preferences.getBoolean ("onboarding_complete! "false)) {//Start onboarding aktivitet Intent onboarding = new Intent (dette, OnboardingActivity.class); startActivity (onboarding); //Lukk hoved Activity finish (); return;}
8.Update App Manifest
Hvis du ikke har gjort det allerede, erklærer OnboardingActivity i app manifest
< aktivitet android: ".. OnboardingActivity" name = android: screenOrientation = "landskapet" />
9. Kompilere og kjøre
Nå kan du sette sammen din app og kjøre den på en Android-enhet. Da dette vil være første løp, bør du se onboarding skjermer i stedet for hovedaktiviteten.
Konklusjon
I denne opplæringen, lært deg hvordan du kan lage enkle onboarding skjermer og legge dem til din Android app. Bruk disse skjermene til svært konsist svare på spørsmål, for eksempel hva din app kan gjøre og når det skal brukes.
For en optimal brukeropplevelse, bør onboarding prosessen være så kort som mulig, og brukeren skal kunne å hoppe over det til enhver tid. Anmeldelser