| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 18.10.08 Prihlásený: 20.11.20 Príspevky: 450 Témy: 105 Bydlisko: PK |
Ahojte, mam trocha problem kedy pouzit fragment a kedy activitu..mate nejaku radu ako to rozlisit?
_________________ PC: CPU: Intel® Core™i5-750 processor 2,66GHz, MB: MSI, So1156, iP55, VGA: SAPPHIRE VAPOR-X HD 4890 2GB GDDR5 PCI-E OC, RAM: 4GB 1600MHz DDR3, HDD: WD 7501 AALS 750GB, 7200RPM, Serial ATA II. 32MB, CASE: Max Cube Amoris 6010 Book: Asus ux32ln Phone: Samsung Note 4
Zivot je svina, nikdy sa nim nenechaj zlomit |
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 20.11.2015 0:04 | |
|
Fragment si predstavuj len nieco ako component aktivity, Google ich vytvoril za ucelom optimalizacie rozlisenia obrazovky a jedine vyuzitie som videl iba v tom ze v landscape mode mozes zobrazit 2 fragmenty naraz. Osobne ako pracujuci android vyvojar som nazoru ze je to najvacsi odpad aky google kedy vydal. Fragmenty maju velmi zlozity lifecycle ktory som nikdy nechcel pochopit a v principe robi len obaluje view do skupiny lifecyclov. https://corner.squareup.com/2014/10/advocating-against-android-fragments.html nieco na precitanie, ale hovorim ti rovno nie je to nic pre zaciatocnikov. Ja v praxi skoro vobec nepouzivam fragmenty (vynimka MapFragment) a vsetko robim len vo view-och. Pracovat ale len s view-my ma svoje nedostatky ako napriklad ked robis nejake in-app purchases a potrebujes citat vysledky v onActivityResult() funkcie aktivity. Na jednoduche veci ti odporucam https://github.com/neevek/Paginize alebo si skus naimplementovat nejaky vlastny backstack view-ov. U mna napriklad aktivita vyzera takto : Kód: public class Activity : ParentActivity(R.layout.layout, navigation = Navigation.DRAWER) a dalej je len view : Kód: class Model(nejake property)
interface Events { ... eventy co sa deju vo view-e su to v principe Observables https://github.com/ReactiveX/RxJava }
fun createModel(runner: TaskRunenr, events: Events) = Model(... )
class View(context: Context, attrs: AttributeSet, val setup: (Events) -> Model) : SuperLayout(context, attrs), Events { ... }
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 18.10.08 Prihlásený: 20.11.20 Príspevky: 450 Témy: 105 Bydlisko: PK | Napísal autor témy doubleR: 23.11.2015 22:14 | |
|
Dik..vidim ze to chce dost praxe..
_________________ PC: CPU: Intel® Core™i5-750 processor 2,66GHz, MB: MSI, So1156, iP55, VGA: SAPPHIRE VAPOR-X HD 4890 2GB GDDR5 PCI-E OC, RAM: 4GB 1600MHz DDR3, HDD: WD 7501 AALS 750GB, 7200RPM, Serial ATA II. 32MB, CASE: Max Cube Amoris 6010 Book: Asus ux32ln Phone: Samsung Note 4
Zivot je svina, nikdy sa nim nenechaj zlomit |
|
Registrovaný: 18.10.08 Prihlásený: 20.11.20 Príspevky: 450 Témy: 105 Bydlisko: PK | Napísal autor témy doubleR: 28.11.2015 14:06 | |
|
Mozem sa este spytat? Ak mam navigationDrawer..tu bocnu listu..a chcem aby po kliknuti na niekt poluzku sa mi zobrazila napr aktivita, ale stale tam bol aktivny ten anvigationDrawer..jednodo neviem pouzit ten navigation drawer a zobrazovat s nim vsetky mozne aktivity..
_________________ PC: CPU: Intel® Core™i5-750 processor 2,66GHz, MB: MSI, So1156, iP55, VGA: SAPPHIRE VAPOR-X HD 4890 2GB GDDR5 PCI-E OC, RAM: 4GB 1600MHz DDR3, HDD: WD 7501 AALS 750GB, 7200RPM, Serial ATA II. 32MB, CASE: Max Cube Amoris 6010 Book: Asus ux32ln Phone: Samsung Note 4
Zivot je svina, nikdy sa nim nenechaj zlomit |
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 28.11.2015 15:26 | |
|
NavigationDrawer s takymto pristupom je celkom narocna vecicka, on je defaultne urobeny na fragmenty ale nic nie je nemozne. Urobis si aktivitu v ktorej budes narabat s drawerom, teda vsetko mozne ako onClick listenery a pod a namiesto zamienania fragmentu tak len nastartujes aktivitu, ktora musi byt samozrejme potomkom tejto aktivitu. Urob si dobre layout-y a mas to odporucam ale aktivitu spustat az po tom, co zatvoris drawer, je tam na to listener tak isto.
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 18.10.08 Prihlásený: 20.11.20 Príspevky: 450 Témy: 105 Bydlisko: PK | Napísal autor témy doubleR: 28.11.2015 17:50 | |
|
Zatial to skusam s tymi fragmetami..problem je ze vo funkcii public Kód: void onNavigationDrawerItemSelected(int position) mam nasledovny kod Kód: switch (position){ default: case 0: fragment = new UvodnaObrazovka(); break; case 1: fragment = new UvodnaObrazovka(); break; } a ak spustim appku, tak tie fragmenty sa prekrivaju jeden cez druheho..proste button z jedneho fragmentu aj z druheho su na obrazovke..Nie zo zaciatku, ale ked ovorim jeden aj druhy..
_________________ PC: CPU: Intel® Core™i5-750 processor 2,66GHz, MB: MSI, So1156, iP55, VGA: SAPPHIRE VAPOR-X HD 4890 2GB GDDR5 PCI-E OC, RAM: 4GB 1600MHz DDR3, HDD: WD 7501 AALS 750GB, 7200RPM, Serial ATA II. 32MB, CASE: Max Cube Amoris 6010 Book: Asus ux32ln Phone: Samsung Note 4
Zivot je svina, nikdy sa nim nenechaj zlomit |
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 28.11.2015 23:08 | |
|
Kód: default: break; ti tam hlavne chyba a default sa dava ako posledna moznost kedze ti nevidim moc do layouto-u a vacsej casti kodu tak ti viac pomoct neviem skus tu nakopirovat celu aktivitu radsej
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 18.10.08 Prihlásený: 20.11.20 Príspevky: 450 Témy: 105 Bydlisko: PK | Napísal autor témy doubleR: 16.12.2015 20:48 | |
|
Nakoniec som sa vykaslal na cely panel..uz neboli nervy ale dik moc za ochotu. Urcite sa nato este pozriem.
_________________ PC: CPU: Intel® Core™i5-750 processor 2,66GHz, MB: MSI, So1156, iP55, VGA: SAPPHIRE VAPOR-X HD 4890 2GB GDDR5 PCI-E OC, RAM: 4GB 1600MHz DDR3, HDD: WD 7501 AALS 750GB, 7200RPM, Serial ATA II. 32MB, CASE: Max Cube Amoris 6010 Book: Asus ux32ln Phone: Samsung Note 4
Zivot je svina, nikdy sa nim nenechaj zlomit |
|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 |
Pocul som uz viacero android developerov odsudzovat fragmenty. Ja osobne ich pouzivam a funguju mi dobre, takze tato tema je velmi diskutabilna a velmi rad by som si precital nejaky silny argument, ktory je proti fragmentom. Zatial som ziadny nenasiel. Najprv odpoviem na otazku: Fragmenty mozes pouzivat ako jednotlive sekcie aktivity. Myslim si, ze zalezi od toho, aku appku vyvyjas. Ale vzdy sa oplati zgrupit fragmenty jedneho druhu pod osobitne aktivity. Nikdy nemam 1 aktivitu a vela fragmentov, ak to nie je nejaka primitivna appka. Ale zriedka sa stane, ze mam 1 aktivitu s 1 fragmentom. Ja osobne si v tom vytvaram nasledujucu logiku. Predstav si, ze mas jednu obrovsku obrazovku (vela priestoru). Mozes, cisto teoreticky, na nu nahadzat vsetky fragmenty tak, ze obrazovka bude davat zmysel ? V tom pripade sprav aktivitu ako danu obrazovku s prislusnymi fragmentami. Kazdy fragment moze byt pritom kludne dalsia osobitna obrazovka, cize len prepinas fragmenty. To, kolko fragmentov bude mat uz jedna aktivita a ake budu, to je na tebe, je to pomocka pre teba, rob ich tak, ako sa ti s nimi bude dobre narabat. Nema ti to pracu stazit ale ulahcit . Nema ti to vytvarat kopu kodu, ale rozvrstvenie. Osobne by som ti dal tieto rady pri pouzivani: - vykasli sa na fragmenty, ak ich chces kombinovat so support library. Ano - vtedy je to naozaj bolest. Vtedy budes narazat na problemy, ktore ti budu pracu komplikovat a je lepsie ist do viewov. Akonahle mas pouzivat Activity alebo Fragment object so support library, radsej to nerob. Ja robievam appky s minimal SDK v 14, tam sa to da. - fragmenty ti daju velmi lahky sposob, ako vytvarat animacie. napriek tomu sa nesnaz vsetko pchat do fragmentov, len aby si ich dosiahol. - na vnorene fragmenty zabudni, dokym tvoj minimal sdk nie je aspon api 17. alebo na ne zabudni celkovo - do fragmentov pchaj iba kod suvisiaci s fragmentom. to je vacsinou kod suvisiaci s layoutom, ktory mas vo fragmente. handlovanie requestu na server napriklad nepovazujem za vec suvisiacu s fragmentom, pretoze taky request mozes chciet teoreticky pouzit aj inde, asi vzdy. "Rozrolovanie detailov" vo fragmente je ale napriklad vec ktora sa tyka cisto fragmentu, tak pojde do metody, ktoru ma fragment. Precital som si aj clanok od XOLOO ( https://corner.squareup.com/2014/10/advocating-against-android-fragments.html ) ale znova nic presvedcive som tam nenasiel. Zlozity lifecycle ? Noaco, nemam s tym problem. Hard to debug ? Not hard enough aby som ich nepouzil, vlastne som s tym nikdy problem este nemal. Layout logika ze je spojena s fragmentom ? To je podla mna vyhoda, lepsie strukturovanie kodu. Tazsie pisanie testov ? Mozno, ale chcem priklad. Ze su async ? Noaco. Fragment creation magic ? Nepouzivaj support library na ne. Ten example of usage co tam je spomenuty ? Mne sa viac paci Fragment verzia. atd atd //edit: a co sa tyka toho nawigationdraweru a switchu. switch nemusi mat nutne default, takze mu tam nechyba. niekedy netreba byt tak hrozne striktny. ak chces pomoc s navigationdrawerom, zaloz novu temu, ja ho pouzivam, je to pekny element a funguje jednoducho.
_________________ CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m |
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|