Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
materialize [2022/02/23 19:29] enrique_mieza_sanchez |
materialize [2025/11/26 19:55] (actual) enric_mieza_sanchez [Primera plantilla Cordova + Materialize] |
||
|---|---|---|---|
| Línia 5: | Línia 5: | ||
| Estava dirigit a ser " | Estava dirigit a ser " | ||
| - | La web principal és https:// | + | Referències: |
| + | * Web antiga: | ||
| + | * Web actual: https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | {{ materialize.svg }} | + | |
| + | {{ materialize.svg?300 }} | ||
| Línia 17: | Línia 23: | ||
| ===== Context ===== | ===== Context ===== | ||
| Tenim bàsicament 2 interessos per treballar amb Materialize CSS: | Tenim bàsicament 2 interessos per treballar amb Materialize CSS: | ||
| - | * Si estem treballant en una web que volem que sigui responsive. | + | |
| - | * Si estem treballant en aplicacions mòbils basades en HTML i CSS com [[Cordova]]. | + | * Si estem treballant en aplicacions mòbils basades en HTML i CSS com [[Cordova]]. |
| Aquest article treballa Materialize assumint que estem en un context del // | Aquest article treballa Materialize assumint que estem en un context del // | ||
| Línia 24: | Línia 30: | ||
| \\ | \\ | ||
| - | ===== Instal·lació | + | ===== Grid (la quadrícula) |
| + | La part més important del Material Design, en el què respecta a la // | ||
| - | Creem el nostre projecte Cordova | + | El referent històric més conegut és Twitter Bootstrap, un dels // |
| + | |||
| + | <WRAP todo> | ||
| + | - Llegeix la [[https:// | ||
| + | - Descarrega el //starter template// de la secció [[https:// | ||
| + | - Modifica' | ||
| + | * (s)mall screen: 1 sol element | ||
| + | * (m)edium screen: 2 elements | ||
| + | * (l)arge screen: 4 elements | ||
| + | - Aplica noves icones de [[https:// | ||
| + | - Crea títol i text per a 6 notícies (pots utilitzar ChatGPT o similars). | ||
| + | - Crea imatges amb IA per a les notícies. | ||
| + | - Formata les notícies amb l' | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Creació projecte Cordova ===== | ||
| + | |||
| + | Si volem treballar en [[Cordova]] podem crear un projecte així: | ||
| $ cordova create materialapp | $ cordova create materialapp | ||
| Línia 34: | Línia 60: | ||
| \\ | \\ | ||
| - | ===== Primera plantilla ===== | + | ===== Primera plantilla |
| - | Descarrega el Starter-Template al final d'aquesta pàgina: https:// | + | <WRAP info> |
| + | L'objectiu ara serà crear una aplicació Cordova que utilitzi correctament MaterializeCSS. Necessitem fusionar adequadament els arxius de Cordova i Materialize. | ||
| + | </ | ||
| - | Copia els arxius | + | <WRAP download> |
| + | Ves a [[https:// | ||
| + | </ | ||
| - | Pel què fa a index.html no el podem copiar directament ja que necessitem barrejar els dos arxius. | + | A partir d' |
| - | Fes un backup del template | + | <WRAP prewrap> |
| + | <file html index.html> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <meta http-equiv=" | ||
| + | <meta name=" | ||
| + | <meta name=" | ||
| + | <meta name=" | ||
| + | < | ||
| + | <!-- Fonts Google --> | ||
| + | <link | ||
| + | href=" | ||
| + | rel=" | ||
| + | /> | ||
| + | <!-- CSS materialize --> | ||
| + | <link rel=" | ||
| + | <!-- CSS personalitzat --> | ||
| + | <link rel=" | ||
| + | </ | ||
| + | < | ||
| + | |||
| + | <!-- AQUI VAN ELS CONTINGUTS --> | ||
| - | Comprova que el visualitzem correctament: | ||
| - | $ cordova platform add browser | ||
| - | $ cordova run browser | ||
| - | Copiem els '' | + | <!-- cordova lib --> |
| + | <script src=" | ||
| + | <!-- Compiled and minified JavaScript --> | ||
| + | <script src=" | ||
| + | <!-- init --> | ||
| + | <script src=" | ||
| + | |||
| + | </body> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| - | <sxh html> | + | A '' |
| - | <meta http-equiv=" | + | |
| - | <meta name=" | + | |
| - | <meta name=" | + | |
| - | <meta name=" | + | |
| - | <meta name=" | + | |
| - | </ | + | |
| - | Engega-ho en el browser i assegura't que no hi ha cap missatge d' | + | <file javascript index.js> |
| + | // Wait for the deviceready event before using any of Cordova's device APIs. | ||
| + | // See https:// | ||
| + | document.addEventListener(' | ||
| - | Afegeix també els scripts al final de la pàgina, hauria de quedar algo així: | + | function onDeviceReady() { |
| + | // Cordova is now initialized. Have fun! | ||
| - | <sxh html> | + | console.log(' |
| - | <!-- Scripts | + | //document.getElementById(' |
| - | <script src="cordova.js"></ | + | } |
| - | < | + | |
| - | < | + | |
| - | <script src=" | + | |
| - | </ | + | |
| - | A '' | + | // init Materialize |
| + | M.AutoInit(); | ||
| + | </ | ||
| - | <sxh js> | + | Arrenquem de nou amb el //browser// i comprovem que a la consola de Javascript no tenim cap error. |
| - | // Arxiu init.js + index.js | + | |
| - | (function($){ | + | <WRAP important> |
| - | | + | Si us dona un error tipus: " |
| - | $('.sidenav' | + | Una [[https:// |
| - | | + | |
| - | })(jQuery); // end of jQuery name space | + | </WRAP> |
| + | \\ | ||
| - | document.addEventListener(' | + | ===== Navbar, Sidenav i Tabs ===== |
| - | function onDeviceReady() { | + | Si has seguit fins aquí, hauries de tenir una app buida. |
| - | // Cordova is now initialized. Have fun! | + | |
| - | console.log('Running cordova-' | + | Aplicarem una Navbar i Tabs per disposar d'una plantilla d'app força complerta: |
| - | //document.getElementById(' | + | * [[https:// |
| - | } | + | * [[https://materializeweb.com/ |
| - | </sxh> | + | * [[https:// |
| + | |||
| + | Si seguim els exemples bàsics hauríem d'aconseguir una app com aquesta: | ||
| + | |||
| + | {{materialize-navbar-tabs.png? | ||
| + | {{materialize-sidenav.png? | ||
| + | |||
| + | |||
| + | <WRAP todo> | ||
| + | Segueix totes les passes indicades per disposar d'una app Cordova amb Sidenav, Sidebar i Tabs. | ||
| - | Arrenquem de nou amb el browser i comprovem | + | Comprova |
| + | - Revisa que no hi hagi missatges d' | ||
| + | - Comprova que el menú lateral funciona quan cliquem el //hamburger menu//. | ||
| + | </ | ||
| \\ | \\ | ||
| - | ===== Pestanyes d' | ||
| - | El primer que necessitarem per tenir una aplicació mòbil decent serà disposar de diversos TABs o pestanyes o seccions de l' | ||
| - | [[https:// | + | ===== Obrir una pestanya des del codi (canvi |
| + | Si volem obrir una pestanya des d'una altra, caldrà fer una crida a l' | ||
| - | Elimina els continguts interns del projecte (deixa els encapçalaments, | + | Mirant la [[https:// |
| - | Aquest component (els tabs) necessita ser inicialitzat amb les opcions adequades. Per activar-ho hauràs d' | + | <code javascript> |
| + | // canviem al tab 3 | ||
| + | var tabs = document.getElementById(" | ||
| + | var tabsInstance = M.Tabs.getInstance(tabs); | ||
| + | tabsInstance.select(" | ||
| + | </ | ||
| - | <sxh js> | + | Si ho volem fer amb jQuery també tenim aquesta alternativa, |
| - | var options = { " | + | <code javascript> |
| - | var el = document.getElementById(' | + | $('#tabs-swipe-demo').tabs(" |
| - | var instance = M.Tabs.init(el, options); | + | </code> |
| - | </sxh> | + | |
| - | Com pots veure, Materialize pot utilitzar jQuery però tampoc és imprescindible (a la majoria de plugins). | + | \\ |
| - | Si volem utilitzar la versió jQuery sería d' | ||
| - | <sxh js> | + | ===== Mes widgets! ===== |
| - | $('.tabs' | + | |
| - | </sxh> | + | Per tenir una aplicació a full ens caldran aquest tipus de recursos, molt ben estilitzats. Fes-li un cop d'ull a tots ells, imprescindibles! |
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * Els imprescindibles [[https:// | ||
| + | * El famós [[https:// | ||
| + | * Obrir un [[https:// | ||
| + | |||
| + | I no deixeu d' | ||
| + | |||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Pestanyes lliscants ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Elimina els continguts interns del projecte (deixa els encapçalaments, | ||
| + | |||
| + | Aquest component (els tabs) necessita ser inicialitzat amb les opcions adequades. Per activar-ho hauràs d' | ||
| + | |||
| + | <code javascript> | ||
| + | window.onload = (event) => { | ||
| + | console.log(" | ||
| + | var options = { " | ||
| + | var el = document.getElementsByClassName(' | ||
| + | var instance = M.Tabs.init(el, | ||
| + | }; | ||
| + | </code> | ||
| I finalment, per aconseguir que cadascuna de les seccions ocupin l' | I finalment, per aconseguir que cadascuna de les seccions ocupin l' | ||
| <file css style.css> | <file css style.css> | ||
| + | /* | ||
| + | * ...deixar els continguts que existissin prèviament... | ||
| + | */ | ||
| + | |||
| + | /* body fix: perquè ocupi tota la pantalla */ | ||
| html, body { | html, body { | ||
| height: 100vh; | height: 100vh; | ||
| Línia 131: | Línia 233: | ||
| } | } | ||
| + | /* | ||
| + | * afegir la class tabs-content a cada div de contingut | ||
| + | * per solucionar el contingut scollable de cada pestanya | ||
| + | */ | ||
| .tabs-content { | .tabs-content { | ||
| height: 100%; | height: 100%; | ||
| + | overflow-y: scroll !important; | ||
| } | } | ||
| </ | </ | ||
| Línia 138: | Línia 245: | ||
| \\ | \\ | ||
| - | |||
| - | ==== Obrir una pestanya ==== | ||
| - | Si volem obrir una pestanya des d'una altra, caldrà fer una crida a l' | ||
| - | |||
| - | Mirant la [[https:// | ||
| - | |||
| - | <sxh js> | ||
| - | // canviem al tab 2 | ||
| - | var tabs = document.getElementById(" | ||
| - | var tabsInstance = M.Tabs.getInstance(tabs); | ||
| - | tabsInstance.select(" | ||
| - | </ | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Menú lateral (sidenav) ===== | ||
| - | |||
| - | Mira el [[https:// | ||
| - | |||
| - | Implementa un menú més complert amb diversos menus disponibles. | ||
| - | |||
| - | \\ | ||
| - | |||
| - | ===== Mes widgets! ===== | ||
| - | |||
| - | Per tenir una aplicació a full ens caldran aquest tipus de recursos, molt ben estilitzats. Fes-li un cop d'ull a tots ells, imprescindibles! | ||
| - | |||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * Els imprescindibles [[https:// | ||
| - | * El famós [[https:// | ||
| - | * Obrir un [[https:// | ||
| - | |||
| - | I no deixeu d' | ||
| - | |||