简体 中文 版 说明 >>>
Scene este o biblioteca usoara de navigatie si compozitie ui bazata pe vizualizare.
- Navigare simpla si convenabila si gestionarea stivei, accepta stive multiple
- Management si distributie imbunatatite a ciclului de viata
- Mai usor de implementat animatie complexa cu scene taiate
- Sprijina modificarea proprietatilor si recuperarea activitatii si ferestrei
- Sprijina valoarea de returnare intre scene, solicita asistenta si acorda permisiuni in scena
- Suporta salvarea si recuperarea starii scenei
Descarcati demonstratia
Aplicatii care utilizeaza Scene
Introducere
Scena este conceputa pentru a inlocui utilizarea Activitatii si a fragmentelor in navigare si segmentarea paginilor.
Principalele probleme ale activitatii:
- Gestionarea stivei a Activitatii este slaba, Intent si LaunchMode sunt confuze, chiar daca diferite hack-uri inca nu pot evita complet probleme precum ecranul negru
- Performanta activitatii este slaba, timpul mediu de pornire al unei activitati goale depaseste 60 ms (pe Samsung S9)
- Deoarece activitatea este fortata sa sustina recuperarea statelor, aceasta provoaca unele probleme:
- Animatia de tranzitie are capacitate limitata, dificil de implementat animatii interactive complexe.
- Animatia cu elemente partajate este practic indisponibila si exista unele blocari nerezolvate in Android Framework.
- De fiecare data cand incepeti o noua activitate, onSaveInstance () al activitatii anterioare trebuie executat complet mai intai, ceea ce va pierde multa performanta.
- Activitatea se bazeaza pe fisierul Manifest pentru a provoca dificultati de injectie, ceea ce duce si la faptul ca dinamica activitatii necesita o varietate de hacks
Principalele probleme ale Fragmentului:
- Exista multe blocari pe care oficialul Google nu le poate rezolva mult timp. Chiar daca nu utilizati Fragment, acesta poate declansa totusi un blocaj in OnBackPressed () din AppCompatActivity.
- Operatia de adaugare / eliminare / ascundere / afisare nu este executata imediat. Cu fragmentele cuib chiar daca utilizati commitNow (), actualizarea starii fragmentelor secundare nu poate fi garantata.
- Suportul animatiei este slab, ordinea axei Z nu poate fi garantata la comutare
- Gestionarea navigarii este slaba, nu exista o gestionare avansata a stivei, cu exceptia push de baza si pop
- Ciclul de viata al Fragmentului in pachetele native Fragment si Support-v4 nu este exact acelasi
Cadrul Scenei incearca sa rezolve aceste probleme ale Activitatii si Fragmentului mentionate mai sus.
Ofera un API simplu, fiabil si extensibil pentru o solutie usoara de navigare si segmentare a paginilor
In acelasi timp, oferim o serie de solutii de migrare pentru a ajuta dezvoltatorii sa migreze treptat de la activitate si fragment la scena.
Incepe
Adaugati la build.gradle:
Scena are 2 subclase: NavigationScene si GroupScene:
- NavigationScene accepta navigarea
- GroupScene accepta compozitia ui
Pentru o utilizare simpla, lasati doar activitatea dvs. sa mosteneasca de la SceneActivity:
Un exemplu simplu de scena:
mamadas retro videos incesto online
porno español abuelas jovencitasxxx
videos de follar tetas en la playa
la engaña para follar madres españolas follando con hijos
peliculas porno de incesto en español cincuentonas
paja en el coche viejas tetonas
porno gay guarro lesbianas incesto
pilladas meando tias cachondas
follando en el trastero pilladas meando
mamada a dos bocas porno gay trios
abuelas tragando leche chicas corriendose
pilladas pajeandose porno amater español
porno gay trios lesbianas preciosas
realincest maduras masturbandose
sexo español gratis folladas extremas
colegialas anal coños maduros
descargar peliculas porno completas come pollas
maduras en la playa mujeres normales desnudas
vecina mirona pirno
incesto abuelas follando en casa
onActivityCreated (savedInstanceState) setTitle (“Second”) add (mId, TAG) “)}} clasa ChildScene: Scene () {override fun onCreateView (inflater: LayoutInflater, container: ViewGroup, savedInstanceState: Bundle?): View {val view = View (requireSceneContext ()) view.setBackgroundColor (Color.GREEN) return view }}
Migrarea la scena
O noua aplicatie poate utiliza Scene prin mostenirea directa a SceneActivity.
Dar daca activitatea dvs. existenta nu este convenabila pentru a schimba relatia de mostenire, puteti utiliza direct SceneDelegate pentru a gestiona scenele, consultati codul SceneActivity.
Luati ca exemplu planul de migrare a paginii de pornire XiguaVideo:
In primul rand, declara un aspect in XML al activitatii de acasa pentru stocarea Scene: scene_container
Apoi creati o scena transparenta ca scena radacina:
Legati aceasta scena transparenta de R.id.scene_container:
In esenta, exista o coperta transparenta a scenei pe activitate, dar nu este vizibila vizual.
Apoi furnizati metoda Push in Activitate:
Aceasta finalizeaza migrarea de baza, puteti deschide o noua pagina Scena direct in aceasta activitate.
Probleme
Dialog
O fereastra de dialog normala este independenta si se afla in fata ferestrei activitatii, deci daca incercati sa impingeti o scena intr-un dialog de deschidere, aceasta va face ca scena sa apara in spatele ei. Puteti inchide caseta de dialog cand faceti clic sau puteti utiliza Scene pentru a implementa dialogul in locul unui dialog de sistem.
SurfaceView si TextureView
Cand apare scena, animatia va fi executata dupa executarea ciclului de viata a scenei. Cu toate acestea, daca exista un SurfaceView sau un TextureView, acest proces va face ca SurfaceView / TextureView sa devina negru.
Puteti obtine si reatribui Surface inainte de incheierea animatiei pentru a evita problemele de pe TextureView si pentru a captura ultima bitmap si setati la ImageView pentru a evita problemele de pe SurfaceView.
Legat de bara de stare
Nu exista un API oficial al ecranului de notch inainte de Android P si fiecare furnizor are propria sa implementare.
Daca incercati sa ascundeti bara de stare cu WindowFlag sau View’s UiVisibility, aceasta va declansa reproiectarea intregii activitati.
Acest lucru poate provoca schimbarea aspectului scenei din interior, iar comportamentele pot sa nu fie asa cum era de asteptat in unele cazuri.








