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.
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.
Aktivitet
Den ombordstigning Aktivitet
vil være ansvarlig for å vise alle onboarding skjermer. Derfor dette Aktivitet
vil ha følgende widgets:
ViewPager
eksempel som lar brukerne bruke sveipebevegelsen for å flytte fra en ombordværende skjerm til den neste.ButtonFlat
merket Hopp, som tillater utålmodige brukere å hoppe over påbordsprosessen.ButtonFlat
merket neste, som tar brukeren til neste onboarding skjerm.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.
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.
Fragment
for hver Onboarding-skjermOpprett 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.
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"););
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 (); "
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; "
Hvis du ikke allerede har gjort det, erklærer du det OnboardingActivity
i app manifestet.
"xml
"
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
.
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.