Galleria on yksi PowerAppsin keskeisimmistä ja käytetyimmistä kontrolleista. Perusgalleriassa on kuitenkin yksi merkittävä puute. Gallerian rivit ovat nimittäin aina saman korkuisia.

Alla oleva kuva havainnollistaa ongelmaa hyvin. Galleriassa on kolme riviä, joista yksi sisältää pitkän tekstin. Rivien ollessa samankorkuisia, jää kahdelle ensimmäiselle riville huomattava määrä tyhjää.

Screenshot 2019-02-27 at 17.52.54.png

Mitä tilan haaskausta.

Tämä on usein esteenä halutunlaisen käyttöliittymän rakentamiselle.

Tehdään edellisen kuvan galleriasta tiiviimpi versio. Näytetään riveistä ainoastaan otsikot. Show more -painikkeella käyttäjä saa esiin rivin kuvauksen.

Screenshot 2019-02-27 at 18.05.37.png

Mutta rivin kuvausta näytettäessä kasvaa jokaisen rivin korkeus.

Screenshot 2019-02-27 at 18.05.55.png

Ei kovin tyylikästä.

Onneksi tähän ei tarvitse tyytyä. PowerAppsista löytyy myös erikorkuisia rivejä (Flexible height) tukeva galleriatyyppi .

Screenshot 2019-02-27 at 18.10.25

Sitä käyttäen alkuperäinen esimerkkimme näyttää tältä.

Screenshot 2019-02-27 at 18.14.22.png

Mahtavaa!

Esimerkki

Katsotaan hieman tarkemmin, miten tätä galleriatyypiä voi hyödyntää. Tehdään galleria, jossa

  • Näytetään jokaisesta rivistä ainoastaan otsikko
  • Rivin voi ”avata”, jolloin näkyviin ilmestyy tekstikenttä lisätietojen syöttämiseksi

Aloitetaan lisäämällä näytölle korkeussuunnassa joustava galleria. Aseteteaan gallerian tietolähteeksi (data source) joku sopiva SharePoint-lista ja lisätään galleriaan otsikkoa varten teksikenttä (label), sekä lisätietojen antamiseksi tekstin syöttökenttä (text input).

Screenshot 2019-02-27 at 18.42.48.png

Lisätään kuvauskentän viereen painikkeet tallentamiselle sekä muutosten perumiselle.

Screenshot 2019-02-27 at 18.47.48

Ja niiden päälle vielä ikonit, joilla rivin voi avata ja sulkea.

Screenshot 2019-02-27 at 18.50.44.png

Elementit ovat valmiina, siirrytään varsinaisen toiminnallisuuden toteuttamiseen.

Helpointa olisi säätää syöttökentän sekä painikkeiden näkyvyyttä sen mukaan, onko kyseinen gallerian rivi valittuna (Gallery.Selected). Tällöin galleriassa olisi aina joku rivi ”avattuna”, galleriassa kun on aina joku rivi valittuna.

Tämä ei meille kelpaa, joten ylläpidetääm itse tietoa siitä, mikä gallerian rivi kulloinkin on avattuna.

Käyttäjän klikatessa alaspäin osoittavaa väkästä, tallennetaan muuttujaan (ShowTextBoxOnItem) kyseisen rivin id.

UpdateContext({ShowTextBoxOnItem: ThisItem.ID})

Screenshot 2019-02-27 at 18.52.29.png

Käyttäjän klikatessa ylöspäin osoittavaa väkästä, asetetaan muuttujan arvoksi -1. Galleriassa ei ole kyseistä riviä, joten tällöin mitään gallerian riviä ei esitetä avattuna.

UpdateContext({ShowTextBoxOnItem: -1})

Screenshot 2019-02-27 at 18.55.06.png

Tämän jälkeen kaikki on helppoa. Asetetaan esiin ilmestyvien kontrollien näkyvyys riipuumaan siitä, onko kyseisen rivin kohdalla klikattu ikonia. Eli onko kysesen rivin ID sama kuin muuttujassamme oleva id.

Visible: ShowTextBoxOnItem = ThisItem.ID

Screenshot 2019-02-27 at 18.58.41.png

Viritetään vielä väkäsistä näkymään kerrallaan vain toinen.

Väkänen ylös näkyy ainoastaan mikäli kyseinen rivi on avattuna.

Visibility: ThisItem.ID = ShowTextBoxOnItem

Väkänen alas näkyy ainoastaan mikäli kyseinen rivi on kiinni.

Visibility: ThisItem.ID <> ShowTextBoxOnItem

Screenshot 2019-02-27 at 19.01.42.png

Lopuksi asetetaan väkäset päällekkäin jolloin lopputulos näyttää tältä.

Kaikki rivit kiinni.

Screenshot 2019-02-27 at 19.04.55

Keskimmäinen rivi auki.Screenshot 2019-02-27 at 19.05.07