Näytä edistymispalkki Android-sovelluksessasi, jotta saat paremman UX: n

Jos Android-sovelluksesi kestää liian kauan vastaamaan käyttäjän toimintoon, hän saa ANR-virheilmoituksen. Yksi helppo tapa parantaa käyttökokemusta (UX) on näyttää etenemispalkki pidempien toimintojen aikana.

Milloin ja miten edistymisen käyttöä voidaan käyttää

Esimerkiksi resurssien lataaminen, sisällön lataaminen tai viestien lähettäminen voi viedä aikaa. Kun toiminto on mitattavissa, voit saada käyttäjän tietoiseksi siitä, kuinka kauan operaatio on prosessissa.

Liikkuva edistymispalkki vakuuttaa myös käyttäjiä siitä, että sovellus toimii edelleen oikein. Vaikka edistymispalkkia ei voida sitoa mihinkään muuhun kuin ajastimeen, joka päivittää palkin sujuvasti, käyttäjällä on jotain katsottavaa odottaessaan.

Me peitämme pystysuoran etenemispalkin täällä, mutta etenemispalkille on useita tyylejä. Esimerkiksi edistymis widgetin määrittelemätön tila voi osoittaa, että jotain tapahtuu edelleen.

Näytekoodi

Projektin osoittamiseksi luin uuden Android-sovellusprojektin Eclipse-sovelluksessa ja käytin kaikkia oletusasetuksia. Annoin sen luoda aktiviteetin ja muokkasin sitä alla esitetyllä tavalla.

Huomaa ensin, että voit helposti lisätä etenemispalkin asetteluun. Tässä on toimintamme asettelu ja lisää edistymispalkki alareunaan.

 "Http://schemas.android.com/apk/res/android" 
 xmlns: tools = "http://schemas.android.com/tools" 
 android: layout_width = "match_parent" 
 android: layout_height = "match_parent" 
 android: paddingBottom = "@ dimen / activity_vertical_margin" 
 android: paddingLeft = "@ dimen / activity_horizontal_margin" 
 android: paddingRight = "@ dimen / activity_horizontal_margin" 
 android: paddingTop = "@ dimen / activity_vertical_margin" 
 työkalut: context = ".MainActivity" > 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: text = "@ merkkijono / hello_world" /> 
 android: id = "@ + id / adprogress_progressBar" 
 android: layout_height = "wrap_content" 
 android: layout_width = "match_parent" 
 style = "? android: attr / progressBarStyleHorizontal" 
 android: layout_alignParentBottom = "true" 
 android: layout_margin = "10dp" 
 /> 

Käytämme vaakatyyliä, joten etenemispalkki etenee näytön vasemmasta reunasta oikealle.

Nyt haluaisimme tämän edistymispalkin liikkuvan, joten päivitämme edistymispalkkia vakiona ajastimella. Kuten jokaisessa näytekoodissa, sinun on lisättävä sovellukseesi mukautettu logiikka ja lisää virheiden käsittelyä.

 paketti com.example.progressbar; 
 tuo android.app.Activity; 
 tuo android.os.Bundle; 
 tuo android.widget.ProgressBar; 
 julkisen luokan MainActivity laajentaa toimintaa { 
 suojattu staattinen lopullinen int TIMER_RUNTIME = 10000; // ms -> 10 s 
 suojattu boolean mbActive; 
 suojattu ProgressBar mProgressBar; 
 @Ohittaa 
 public void onCreate ( lopullinen paketti tallennettuInstanceState) { 
 super .onCreate (tallennettuInstanceState); 
 setContentView (R.layout. aktiviteetti_main ); 
 mProgressBar = (ProgressBar) findViewById (R.id. progressBar ); 
 viimeinen ketju timerThread = uusi säie () { 
 @Ohittaa 
 julkinen mitätön ajo () { 
 mbActive = totta ; 
 kokeile { 
 int odotettu = 0; 
 kun taas (mbActive && (odotti < TIMER_RUNTIME )) { 
 uni (200); 
 if (mbActive) { 
 odotti + = 200; 
 updateProgress (odotti); 
 } 
 } 
 } saalis (InterruptedException e) { 
 // Älä tee mitään 
 } lopulta { 
 onContinue (); 
 } 
 } 
 }; 
 timerThread.start (); 
 } 
 @Ohittaa 
 public void onDestroy () { 
 super .onestroy (); 
 } 
 public void updateProgress ( lopullinen int timePassed) { 
 if ( nolla ! = mProgressBar) { 
 // Ohita pyöristysvirhe täällä 
 lopullinen sisäinen edistyminen = mProgressBar.getMax () * timePassed / TIMER_RUNTIME ; 
 mProgressBar.setProgress (käynnissä); 
 } 
 } 
 public void onContinue () { 
 // suorita kaikki viimeiset toimenpiteet täällä 
 } 
 } 
Loimme säiettä, joka päivittää edistymispalkkia jatkuvalla edistymisellä 200 ms välein, kunnes se saavuttaa 100% kokonaisajasta. Katso, miltä tämä näyttää Android 2.3 -laitteella ( kuva A ). Kuvio A

Katso nyt päivitetty tyyli Android 4.0 -laitteelta ( kuva B ). Kuvio B

Tämä tyyli otetaan käyttöön automaattisesti Android-version perusteella yhdistettynä kaikkiin valmistajan muunnoksiin. Ellet tarvitse tiettyä tyyliä, on parasta jättää se oletusmalliksi (tai käytettäväksi teemaksi sisältyyksi), jotta laitteen ulkoasu ja tuntuvuus pysyisivät johdonmukaisina.

johtopäätös

Edistymispalkki on yksinkertainen, mutta tehokas tapa näyttää käyttäjälle, että sovellus toimii edelleen, ja pitää hänet aktiivisena. Edistymispalkin asianmukainen käyttö voi myös auttaa saamaan sovelluksen tuntemaan olonsa sujuvammaksi ja reagoivammaksi, mikä yleensä parantaa UX: tä.

© Copyright 2020 | mobilegn.com