Opprette Onboarding-skjermer for Android Apps

Hva du skal skape

Introduksjon

Det tar ikke et geni å forstå at en app som gjør at nye brukere føler seg velkommen, og det er sannsynlig at komfortabel vil ha mye mer popularitet enn en som lar dem gå tapt og forvirret. Som et resultat, prøver mange utviklere disse dager å sikre at brukerne har en fin onboard-opplevelse.

Hvis du utvikler en nyskapende app hvis funksjonalitet og bruksområder kanskje ikke er åpenbare for nye brukere, bør du vurdere å legge til noen onboard-skjermer til appen din. I denne veiledningen vil jeg vise deg en enkel måte å raskt opprette og legge til slike skjermer på Android-appen din.

1. Legg til Gradle Dependencies

Først legger du til Material Design Library som en kompilere avhengighet til build.gradle fil av app modul slik at du kan bruke brukergrensesnittelementer av Android L i eldre versjoner av Android.

java compile 'com.github.navasmdc: MaterialDesign: 1.5@aar'

Deretter legger du til en kompilere avhengighet for SmartTabLayout, et bibliotek som tilbyr et egendefinert tittelstrimmelelement for ViewPager komponent.

java compile 'com.ogaclejapan.smarttablayout: bibliotek: 1.2.1@aar'

Vi bruker også klasser som tilhører Android Support v4 Library. Du trenger imidlertid ikke å legge til det manuelt, fordi Android Studio legger til det som standard.

2. Definer utformingen av Onboarding Aktivitet

Den ombordstigning Aktivitet vil være ansvarlig for å vise alle onboarding skjermer. Derfor dette Aktivitet vil ha følgende widgets:

  • EN ViewPager eksempel som lar brukerne bruke sveipebevegelsen for å flytte fra en ombordværende skjerm til den neste.
  • EN ButtonFlat merket Hopp, som tillater utålmodige brukere å hoppe over påbordsprosessen.
  • EN ButtonFlat merket neste, som tar brukeren til neste onboarding skjerm.
  • EN SmartTabLayout som fungerer som en sideindikator for ViewPager komponent.

Etter å ha satt disse widgets i en RelativeLayout og posisjonering dem, koden i layout XML-filen til onboarding Aktivitet skal se slik ut:

"xml

"

Du er velkommen til å endre oppsettet for å matche dine preferanser. Jeg skal ringe denne layoutfilen activity_onboarding.xml.

3. Definer layoutene til de innebygde skjermene

For denne opplæringen vil du opprette tre onboard-skjermer. For å holde opplæringen enkel, vil skjermene bare ha to TextView widgets. I en ekte app, bør du også streve for å holde onboard-skjermene så enkle som mulig for å unngå at nye brukere blir overveldet når de åpner appen din for første gang.

Oppsett XML-filen på den første skjermen er oppkalt onboarding_screen1.xml og har følgende innhold:

"xml

"

Bruk samme XML i layoutfilene til de to andre skjermbildene og navn dem onboarding_screen2.xml og onboarding_screen3.xml. Selvfølgelig bør du endre tekst eiendom av hver TextView widget slik at hver onboard-skjerm er unik.

4. Opprett en Fragment for hver Onboarding-skjerm

Opprett en ny Java-klasse og gi den navnet OnboardingFragment1.java. Gjør det til en underklasse av Fragment og overstyr det onCreateView metode. Neste, ring på pumpe metode for å lage en Utsikt bruker layoutet vi definerte i onboarding_screen1.xml og returnere Utsikt. Din klasse skal se slik ut:

"java offentlig klasse OnboardingFragment1 utvider fragment

@Nullable @Override public Vis onCreateView (LayoutInflater inflater, ViewGroup container, Bundle s) return inflater.inflate (R.layout.onboarding_screen1, container, false);  "

De Fragment for din første onboarding skjerm er nå klar. Følg samme prosess for å lage to flere Fragment subklasser, OnboardingFragment2.java og OnboardingFragment3.java, som bruker layoutene definert i onboarding_screen2.xml og onboarding_screen3.xml henholdsvis.

5. Opprett Onboarding Aktivitet

Opprett en ny Java-klasse og gi den navnet OnboardingActivity.java. Gjør det til en underklasse av FragmentActivity og overstyr det onCreate metode.

"java offentlig klasse OnboardingActivity utvider FragmentActivity

@Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState);  "

Deretter erklæres en ViewPager, en SmartTabLayout, og to ButtonFlat widgets som medlemsvariabler i klassen.

java privat ViewPager personsøker; privat SmartTabLayout indikator; privat ButtonFlat hoppe; privat ButtonFlat neste;

I onCreate metode, samtale setContentView for å vise layoutet som er definert i activity_onboarding.xml og bruk findViewById metode for å initialisere medlemsvariablene.

"java setContentView (R.layout.activity_onboarding);

personsøker = (ViewPager) findViewById (R.id.pager); indikator = (SmartTabLayout) findViewById (R.id.indicator); hopp over = (ButtonFlat) findViewById (R.id.skip); neste = (ButtonFlat) findViewById (R.id.next); "

Du må nå lage en FragmentStatePagerAdapter at ViewPager kan bruke til å vise påbordsskjermer. Opprett en ny variabel av typen FragmentStatePagerAdapter og nev det adapter. Initialiser det ved å sende resultatet av getSupportFragmentManager metode til sin konstruktør. Fordi det er en abstrakt klasse, vil Android Studio automatisk generere kode for abstrakte metoder som vist nedenfor.

"java FragmentStatePagerAdapter adapter = ny FragmentStatePagerAdapter (getSupportFragmentManager ()) @Overtrid offentlig Fragment getItem (int posisjon)

@Override public int getCount () ; "

I getCount metode, returnere antall onboarding skjermer.

java @Override public int getCount () return 3;

Legg til en bytte om uttalelse til getItem metode for å returnere riktig Fragment basert på verdien av stilling.

java @Override public Fragment getItem (int posisjon) switch (posisjon) tilfelle 0: returner ny OnboardingFragment1 (); tilfelle 1: returner ny OnboardingFragment2 (); tilfelle 2: returner ny OnboardingFragment3 (); standard: return null;

Fortsatt i onCreate metode, knytte FragmentStatePagerAdapter med ViewPager ved å ringe setAdapter metode.

java pager.setAdapter (adapter);

Nå da ViewPager er klar, peker på SmartTabLayout til det ved å ringe setViewPager metode.

java indicator.setViewPager (personsøker);

Det er nå på tide å legge til klikkhåndteringsverktøy til ButtonFlat widgets. Du kan gjøre det ved å bruke setOnClickListener metode, passerer en ny forekomst av View.OnClickListener klasse til den.

I håndtereren av hoppe knappen, ring en metode som heter finishOnboarding. Vi implementerer denne metoden i neste trinn.

I håndtereren av neste knapp, bruk setCurrentItem sammen med getCurrentItem å flytte til neste onboarding skjerm. Også, hvis getCurrentItem returnerer den siste onboarding-skjermen, ring en metode som heter finishOnboarding. Vi implementerer denne metoden på et øyeblikk.

Koden for håndtering av knappene skal se slik ut:

"java skip.setOnClickListener (new View.OnClickListener () @Override public void onClick (Vis v) finishOnboarding (););

next.setOnClickListener (new View.OnClickListener () @Override public void onClick (Vis v) if (pager.getCurrentItem () == 2) // Den siste skjermen er ferdigOnbording (); annet pager.setCurrentItem .getCurrentItem () + 1, true);); "

Du vil kanskje gjøre noen endringer i utformingen av onboarding Aktivitet, for eksempel å fjerne hoppe knappen og endre etiketten til neste knappen til Ferdig når brukeren når den siste onboarding-skjermen. Du kan gjøre det ved å legge til en SimpleOnPageChangeListener til SmartTabLayout og overstyrer sin onPageSelected metode.

java indicator.setOnPageChangeListener (nytt ViewPager.SimpleOnPageChangeListener () @Override public void onPageSelected (int posisjon) hvis (posisjon == 2) skip.setVisibility (View.GONE); next.setText ("Done"); else skip.setVisibility (View.VISIBLE); next.setText ("Next"););

6. Slutt på ombordstigningsopplevelsen

Når brukeren har sett alle onboarding-skjermene, eller valgte å hoppe over dem, bør du avslutte opplevelsen ved å ringe finishOnboarding metode (det er navnet vi brukte i forrige trinn).

I finishOnboarding metode, få en referanse til SharedPreferences objekt av appen og sett a boolean for nøkkelen onboarding_complete til ekte bruker putBoolean metode. Vi bruker denne nøkkelen i neste trinn for å sikre at brukerne bare ser på skjermbildene på bordet hvis de ikke har fullført ombordprosessen.

Deretter opprett en ny Intent og ring til startActivity metode for å starte hovedet Aktivitet (de Aktivitet det skal åpne når brukeren klikker appens ikon).

Til slutt, ring bli ferdig å lukke OnboardingActivity. Det er hva implementeringen av finishOnboarding metoden skal se ut som:

"java private void finishOnboarding () // Få de delte preferansene SharedPreferences preferences = getSharedPreferences (" my_preferences ", MODE_PRIVATE);

// Sett onboarding_complete til true preferences.edit () .putBoolean ("onboarding_complete", true) .apply (); // Start hovedaktiviteten, kalt MainActivity Intent main = new Intent (dette, MainActivity.class); startActivity (hoved); // Lukk OnboardingActivity finish (); "

7. Starte ombordstigningen Aktivitet

Den ombordstigning Aktivitet bør starte så tidlig som mulig hvis en bruker som ikke har fullført ombordprosessen, åpner appen. Dette betyr at du vil legge til koden for å oppdage nye brukere og lansere OnboardingActivity i onCreate Metoden for appens viktigste Aktivitet.

Ved å sjekke om SharedPreferences objektet har en nøkkel kalt onboarding_complete hvis verdi er ekte, Du kan avgjøre om brukeren har fullført ombordprosessen. Hvis verdien av nøkkelen er falsk, lukk hovedet Aktivitet umiddelbart og opprett en ny Intent til lansering OnboardingActivity. Ta en titt på følgende kodeblokk for å bedre forstå dette konseptet.

"java // Få de delte preferansene SharedPreferences preferences = getSharedPreferences (" my_preferences ", MODE_PRIVATE);

// Sjekk om onboarding_complete er falsk hvis (! Preferences.getBoolean ("onboarding_complete", falsk)) // Start ombordværende aktivitetsintensjon påboarding = ny Intent (dette, OnboardingActivity.class); startActivity (onboarding);

// Lukk hovedaktivitetens finish (); komme tilbake; "

8.Update App Manifest

Hvis du ikke allerede har gjort det, erklærer du det OnboardingActivity i app manifestet.

"xml

"

9. Kompilere og kjøre

Du kan nå kompilere appen og kjøre den på en Android-enhet. Da dette vil være din første løp, bør du se på skjermen i stedet for hovedmenyen Aktivitet.

Konklusjon

I denne opplæringen lærte du hvordan du lager enkle onboard-skjermer og legger dem til Android-appen din. Bruk disse skjermbildene til å gi svært kort svar på spørsmål, for eksempel hva appen din kan gjøre og når den skal brukes.

For en optimal brukeropplevelse bør ombordbehandlingsprosessen være så kort som mulig, og brukeren skal kunne hoppe over det når som helst.