Koordinaatori paigutus - pilt imgurilt

Androidi disain - koordinaatori paigutus nr 1: sissejuhatus

Koordinaatori paigutust kirjeldatakse vastavalt dokumentidele kui ülivõimsat FrameLayouti. Seda kasutatakse hõlbustamiseks, kuidas teie paigutuse vaated üksteisega suhtlevad. Selleks luuakse neile vaadetele konkreetne käitumisviis või määratakse see. Need käitumisviisid on materjali disaini ainulaadseks muutmise tuum ja hõlmavad tuttavaid interaktsioone, nagu libistatavad sahtlid ja paneelid, et pühkida-lahti võtta elemendid ja nupud, mis kleepuvad muudele elementidele nende liikumisel ja animeerimisel.

Vaatame lähemalt käitumist ja selle toimimist. Järgmises artiklis tutvustame lihtsat näidet käitumise loomise kohta, mis võimaldab CoordinatorLayouti vaadete vahelist põhilist interaktsiooni.

Joonis 1: Ujuv nupp reageerib suupistepildile Nikita Rusini viisakalt

Käitumine

Käitumine on programmi CoordinatorLayouts keskmes. Need tähistavad kahe või enama sama paigutuse vaate vahelist interaktsiooni. Tavaliselt liigitatakse nad järgmistesse kategooriatesse:

1. Paigutuspõhine käitumine: nt g.p. kui suupisteriba kuvatakse altpoolt, tõlgib nupp FloatingActionBut kohe ülespoole, et mahutada sissetulevat vaadet, nagu on näidatud vasakul oleval joonisel 1.
Ankurdamine on ka vormipõhise käitumise vorm, näiteks kui FloatingActionButton on ankurdatud AppBarLayouti külge, nagu on näha jooniselt 2. Paigutuspõhised käitumisharjumused on tavaliselt Androidi raamistikus üldlevinud ja üldiselt kõige lihtsamini loodavad, nii et keskendume nende kohta selles artiklis.

Joonis 2: AppBarile ankurdatud ujuvnupp (paremal). Image Saul Molinero viisakalt

2. Kerimispõhine käitumine: nt. Kui RecyclerView ja AppBar on olemas ka rakenduses aCoordinatorLayout, siis kui RecyclerView kerib, lükkab see AppBari natuke ülespoole ja minimeerib seejärel AppBari, et jätkata sujuvat kerimist, nagu näidatud joonisel 2 (vasakul). Kerimispõhine käitumine nõuab nende töö alustamiseks natuke rohkem tööd ja me ei keskendu neile praegu kuigi palju.

Kui sukelduda mõne käitumist sisaldava vaate koodi, märkate, et vaatele on lisatud käitumine, kasutades annotatsiooni, nagu on näidatud allpool EC-1, EC -2 ja EC-3.

EC-1: AppBarLayouti käitumine
@ CoordinatorLayout.DefaultBehavior (AppBarLayout.Behavior.class)
avaliku klassi AppBarLayout laiendab LinearLayout
EC-2: Ujuva nupuga käitumine
@ CoordinatorLayout.DefaultBehavior (FloatingActionButton.Behavior.class)
Avalik klass FloatingActionButton laiendab VisibilityAwareImageButtoni
EC-3: suupistete käitumine
Avaliku lõpuklassi suupisteriba laiendab BaseTransientBottomBar 

Märkuse kasutamine, nagu näidatud versioonides EC-1 ja EC-2, on viis käitumise ühendamiseks vaatega programmiliselt. Vaatel saab olla ainult üks, millele on lisatud käitumisviis. Oluline on märkida, et Snackbaril ja selle vanemal BaseTransientBottomBaril pole käitumisharjumusi lisatud, ehkki mõlemad on FloatingActionButtoni vajutamisel suhtlevad nupuga FloatingActionButton. See näitab, et käitumises on suundumus. Käitumise tähendus võib sõltuda teisest vaatest, kuid mitte tingimata vastupidi. Vaadakem, kuidas käitumine sisemiselt toimib.

Käitumisviiside rakendamine

Käitumisharjumuste loomisel peab teie käitumisklass laiendama koordinaatorit.B Käitumisklass , kus V tähistab vaadet, mis sisaldab käitumist. Coordinator.Bhehaviors -klassil on mitu meetodit, mille saab oma käitumise peenhäälestamiseks mööda vaadata, kuid eriti on olemas 3 meetodit, mis on möödapääsmatud.

Põhjalikuma mõistmise huvides kasutame näitena FloatingActionButtoni ja BottomSheet vahelist interaktsiooni. (Vaadake klassi Ujuva käitumise nupp $ Käitumine)

1. layoutDependsOn (…)

Kasutatakse kontrollida, kas CoordinatorLayouti teatud vaade on vaade, millest teie käitumine sõltub. Näiteks kontrollib nupp FloatingActionButton, kas BottomSheet on vaade, millest see sõltub. Sel juhul vastab see tõele.

2. onDependentViewChanged (…)

Kui küljendus on leidnud sõltuvuse, hakkab ta seda sõltuvust jälgima. Näiteks kui FloatingActionButton on tuvastanud, et see sõltub BottomSheetist, kuulab see meetod BottomSheet muudatusi ja teatab sellest FloatingActionButtonile. Allpool toodud näidiskood (EC-5) näitab seda. Siin toimub suhtluse käsitlemise loogika.

EC-5: Siin on kood FloatingActionButton allikast
@Ülesõit
avalik loogiline onDependentViewChanged (koordinaatoriLaenu vanem, FloatingActionButton laps,
        Kuva sõltuvus) {
    if (AppBarLayouti sõltuvusnäide) {
        // Kui sõltume AppBarLayoutist, siis kuvame / peidame selle automaatselt
        // kui FAB on ankurdatud AppBarLayout'iga
        updateFabVisibilityForAppBarLayout (vanem, (AppBarLayout) sõltuvus, laps);
    } else if (isBottomSheet (sõltuvus)) {
        updateFabVisibilityForBottomSheet (sõltuvus, laps);
    }
    tagastama vale;
}

Nagu näeme, kontrollib see meetod, et näha vaateid CoordinatorLayout, meie puhul AppBarLayout ja BottomSheet, AppBarLayout jaoks, see ankurdab end selle külge ja BottomSheet puhul peidab ta end või tõlgib ülespoole sõltuvalt erinevatel tingimustel.

3. onDependentViewRemoved (…)

See meetod sarnaneb onDependentViewChanged () -ga, kuid see teavitab lisatud vaadet, st FloatingActionButton, kui BottomSheet on CoordinatorLayout-st eemaldatud. Seejärel reageerib nupp FloatingActionBut vastavalt sellele, kui ilmub uuesti tõlge allapoole, kui see poleks kadunud.

Koordinaatori pakutavaid meetodeid on rohkem.Klass käitumine , mis pakuvad suuremat detailsust. Need 3 on kõige põhilisemad ja olulisemad, eriti onDependentViewChanged

Järeldus

Nagu näete, on koordinaatori paigutus, kui seda õigesti kasutatakse, väga võimas mehhanism oma pesastatud vaadete vahelise interaktsiooni orkestreerimiseks. See on kasulik vahend vaadete interaktsiooniks, tuues lõpuks välja Material Motioni ideaalid.

Järgmises artiklis näeme, kuidas luua oma kohandatud käitumist! Usu mind, see on lihtsam kui sa arvad. Täname, et lugesite!
Rahu!