ColumnsLayout
ColumnsLayout
-komponentti webforJ:ssä mahdollistaa kehittäjille joustavien ja responsiivisten pystylayoutien luomisen. Tämä layout tarjoaa dynaamiset sarakkeet, jotka mukautuvat käytettävissä olevan leveyden mukaan. Tämä komponentti yksinkertaistaa monisarakkeisten layoutien luontia hallitsemalla automaattisesti katkeamispisteet ja tasausasetukset.
Tätä voidaan käyttää FlexLayout -komponentin kanssa tai sen sijaan - yhtä tehokas työkalu vaakasuuntaisiin layoutteihin.
Perusteet
Kun ColumnsLayout
on ensimmäisen kerran instanssoitu, se käyttää kahta saraketta näyttääkseen layoutiin lisätyt kohteet. Oletuksena se vie koko laajuuden vanhempien elementtien sisällä ja kasvaa tarvittaessa lisäsisällön mahtumiseksi. Lisättyjen kohteiden näyttöä voidaan hienosäätää edelleen käyttämällä Breakpoint
ja Alignment
asetuksia, joita käsitellään yksityiskohtaisesti seuraavissa osioissa.
Näytä Koodi
- Java
Katkeamispisteet
ColumnsLayout
on suunniteltu tarjoamaan joustava, ruudukkomallinen järjestelmä, joka mukautuu vanhemman säilön leveyteen. Toisin kuin perinteiset kiinteät ruudukkojärjestelmät, tämä layout mahdollistaa kehittäjien määrittää tietyn määrän sarakkeita tietyllä leveydellä ja laskee dynaamisesti näytettävien sarakkeiden määrän asetettujen Breakpoint
-objektien mukaan.
Tämä mahdollistaa ColumnsLayout
:in sujuvan mukautumisen kapeammasta tilasta pienillä näytöillä laajemmalle alueelle suuremmilla näytöillä, tarjoten responsiivisen suunnittelun kehittäjälle ilman tarvetta erityiselle toteutukselle.
Ymmärtäminen Breakpoint
Breakpoint
voidaan määrittää käyttämällä Breakpoint
-luokkaa, johon liittyy kolme parametria:
-
Nimi (valinnainen): Katkeamispisteen nimeäminen mahdollistaa sen viittaamisen tulevissa asetuksissa.
-
Minimileveys: Jokaisella katkeamispisteellä on tietty alue, joka määrittää, milloin sen layoutia sovelletaan. Minimileveys määritellään tarkasti, ja seuraava katkeamispiste määrittää maksimi leveyden, jos sellainen on olemassa. Voit käyttää kokonaislukua minimoidaksesi leveyden pikseleinä tai käyttää merkkijonoa määrittääksesi muita yksiköitä, kuten
vw
,%
taiem
. -
Sarakemäärä: Määritä, kuinka monta saraketta katkeamispisteessä tulisi olla tämän kokonaisluvun avulla.
Breakpoint
-arviointiKatkeamispisteet arvioidaan nousevassa järjestyksessä leveyden mukaan, mikä tarkoittaa, että layout käyttää ensimmäistä vastaavaa katkeamispistettä.
Katkeamispisteiden soveltaminen
Katkeamispisteet voidaan soveltaa ColumnsLayout
:iin kahdella tavalla: rakentamisen aikana tai käyttämällä addBreakpoint(Breakpoint)
-menetelmää, kuten alla on esitetty.
ColumnsLayout layout = new ColumnsLayout()
// Yksi sarake leveydellä >= 0px
.addBreakpoint(new Breakpoint(0, 1))
// Kaksi saraketta leveydellä >= 600px
.addBreakpoint(new Breakpoint(600, 2))
// Neljä saraketta leveydellä >= 1200px
.addBreakpoint(new Breakpoint(1200, 4));
Alla oleva esimerkki näyttää useiden katkeamispisteiden asettamisen rakentamisen aikana, käyttämällä katkeamispisteitä komponentin Span
määrittelyyn, ja näyttää ColumnsLayout
:n koon muutoksen, kun sovellusta muutetaan:
Näytä Koodi
- Java
Sarakkeen Span
ja spans per Breakpoint
Sarakkeiden spaneja ColumnsLayout
:issa voidaan käyttää hallitsemaan, kuinka monta saraketta kohde vie, antaen sinulle enemmän hallintaa layoutin ulkoasusta eri leveysasioissa. Tämä on erityisen hyödyllistä, kun haluat tiettyjen elementtien vievän enemmän tai vähemmän tilaa näytön koosta tai suunnitteluvaatimuksista riippuen.
Sarake-spanien hallinta
Oletuksena jokainen kohde ColumnsLayout
:issa vie tarkalleen yhden sarakkeen. Tämä käyttäytyminen voidaan kuitenkin mukauttaa asettamalla yksittäisten kohteiden sarakkeiden spanit. Span määrittää, kuinka monta saraketta kohde tulisi ottaa.
Button button = new Button("Klikkaa minua");
layout.addComponent(button);
// Kohde vie kaksi saraketta
layout.setSpan(button, 2);
Yllä olevassa esimerkissä painike vie kaksi saraketta, eikä vain oletuksena yhtä. setSpan()
-menetelmä antaa sinun määrittää, kuinka monta saraketta komponentin tulisi kattaa layoutissa.
Sarakkeen spanien säätäminen katkeamispisteiden kanssa
Voit myös säätää sarakkeen spanien dynaamisesti katkeamispisteiden mukaan. Tämä ominaisuus on hyödyllinen, kun haluat kohteen spanin olevan erilaisista sarakkeista riippuvainen näytön koosta. Esimerkiksi saatat haluta elementin vievän yhden sarakkeen mobiililaitteilla, mutta spanavan useita sarakkeita suuremmilla näytöillä.
TextField email = new TextField("Sähköposti");
//...
List.of(
new ColumnsLayout.Breakpoint("default", 0 , 1),
new ColumnsLayout.Breakpoint("small", "20em", 1),
new ColumnsLayout.Breakpoint("medium", "40em", 2),
new ColumnsLayout.Breakpoint("large", "60em", 3)
)
//...
//email-kenttä vie kaksi saraketta, kun keskeinen katkeamispiste on aktiivinen
columnsLayout.setSpan(email, "medium", 2);
//...
Tämä mukautustaso varmistaa, että layoutisi pysyy responsiivisena ja rakenteeltaan asianmukaisena eri laitteilla.
Kohteiden sijoittaminen sarakkeisiin
ColumnsLayout
tarjoaa mahdollisuuden sijoittaa kohteita tiettyihin sarakkeisiin, antaen enemmän hallintaa elementtien järjestelyyn. Voit manuaalisesti määrittää, missä kohteen tulisi näkyä layoutissa varmistaen, että tärkeät komponentit näkyvät haluamallasi tavalla.
Perussarakasijoittaminen
Oletuksena kohteet sijoitetaan seuraavaan saatavilla olevaan sarakkeeseen täyttäen vasemmalta oikealle. Voit kuitenkin ohittaa tämän käyttäytymisen ja määrittää tarkalleen, mihin sarakkeeseen kohde tulisi sijoittaa. Kohteen sijoittamiseksi tietyyn sarakkeeseen käytä setColumn()
-menetelmää. Tässä esimerkissä painike sijoitetaan layoutin toiseen sarakkeeseen, riippumatta siitä, missä järjestyksessä se lisättiin suhteessa muihin komponentteihin:
Button button = new Button("Lähetä");
layout.addComponent(button);
// Sijoita kohde toiseen sarakkeeseen
layout.setColumn(button, 2);
Sijoittamisen säätäminen katkeamispisteiden mukaan
Aivan kuten sarakkeen spanien kanssa, voit käyttää katkeamispisteitä säätämään kohteiden sijoittelua näytön koon mukaan. Tämä on hyödyllistä elementtien järjestyksen tai paikkaamisen muuttamiseksi layoutissa näkymän muuttuessa.
TextField email = new TextField("Sähköposti");
//...
List.of(
new ColumnsLayout.Breakpoint("default", 0 , 1),
new ColumnsLayout.Breakpoint("small", "20em", 1),
new ColumnsLayout.Breakpoint("medium", "40em", 2),
new ColumnsLayout.Breakpoint("large", "60em", 3)
)
//...
//email-kenttä näkyy toisessa sarakkeessa, kun keskeinen katkeamispiste on aktiivinen
columnsLayout.setColumn(email, "medium", 2);
//...
Seuraavassa demonstraatiossa huomaa, että kun "medium"
katkeamispiste aktivoituu, email
-kenttä vie molemmat sarakkeet, ja confirmPassword
-kenttä sijoitetaan ensimmäiseen sarakkeeseen, eikä sen oletuspaikkaan toiseen sarakkeeseen:
Näytä Koodi
- Java
Kun useita kohteita sijoitetaan layoutiin erilaisilla spanilla ja/tai sarakeasetuksilla, varmista, että kohteiden yhteenlasketut spanit ja sijoitukset rivillä eivät päällekkäin. Layout yrittää hallita välistä tilaa automaattisesti, mutta huolellinen suunnittelu spaneista ja katkeamispisteistä estää tahattoman kohteiden näyttämisen.
Vertikaaliset ja horisontaaliset kohteen tasaus
Jokainen kohde ColumnsLayout
:issa voidaan tasaamaan sekä vaakasuunnassa että pystysuunnassa sarakkeensa sisällä, mikä antaa hallinnan siitä, miten sisältö sijoitetaan layoutin sisällä.
Vaakasuuntainen tasaus kohteelle hallitaan käyttämällä setHorizontalAlignment()
-menetelmää. Tämä ominaisuus määrää, miten kohde on kohdistettu sarakkeensa sisällä vaakasuoralla akselilla.
Pystysuuntainen tasaus määrittää, kuinka kohde sijoitetaan sarakkeensa sisällä pystysuoralla akselilla. Tämä on hyödyllistä, kun sarakkeilla on vaihteleva korkeus ja haluat hallita, miten kohteet jakautuvat pystysuunnassa.
Saatavilla olevat Alignment
-vaihtoehdot sisältävät:
START
: Kohdistaa kohteen sarakkeen vasempaan laitaan (oletus).CENTER
: Keskittää kohteen vaakasuunnassa sarakkeessa.END
: Kohdistaa kohteen sarakkeen oikeaan laitaan.STRETCH
: Venyttää komponentin täyttämään layoutin.BASELINE
: Kohdistaa perustuen sarakkeessa olevaan tekstiin tai sisältöön, kohdistamalla kohteet tekstin alalaitaan muista tasausvaihtoehdoista poiketen.AUTO
: Automaattinen tasaus.
Näytä Koodi
- Java
Yllä olevassa esittelyssä Lähetä
-painikkeelle on annettu ColumnsLayout.Alignment.END
, jotta se näkyy sarakkeensa päässä, tai tässä tapauksessa oikealla.
Kohteiden väli
Sarakkeiden välin hallinta ColumnsLayout
:issa sarakkeiden (vaakaväli) ja rivien (pystyvli) välillä auttaa kehittäjiä hienosäätämään layoutia.
Aseta layoutin vaakaväli käyttämällä setHorizontalSpacing()
-menetelmää:
// Aseta 20px väli sarakkeiden väliin
layout.setHorizontalSpacing(20);
Samaan tapaan käytä setVerticalSpacing()
-menetelmää määrittääksesi välin rivien välillä layoutissa:
// Aseta 15px väli rivien väliin
layout.setVerticalSpacing(15);
Voit käyttää kokonaislukua määrittämään minimileveyden pikseleinä tai käyttää merkkijonoa määrittääksesi muita yksiköitä, kuten vw
, %
tai em
.
Vaakasuorat ja pystysuorat layoutit
Responsiivisten ja houkuttelevien layoutien rakentaminen on mahdollista sekä FlexLayout
-komponentilla että ColumnsLayout
-komponentilla, sekä näiden yhdistelmällä. Alla on esimerkki FlexLayout artikkelissa luodusta lomakkeesta, mutta käyttäen ColumnLayout
-järjestelmää:
Näytä Koodi
- Java