Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Inserire uno SwipeView con numero di pagine dinamico dentro un TabBar con 2 Tab



  • Ciao a tutti

    Ho una pagina con uno swipeView che ha un numero variabile di pagine.

    Questa pagina carica una programmazione oraria di un termostato da una Rest API e questa parte dopo qualche giorno sono riuscito a farla funzionare. Funziona anchelo swipe, nel senso che girando le pagine carica la programmazione corrispondente.

    Ora manca un ulteriore parte, che è quella di cambiare la stagione.

    I 2 tab rappresentano la stagione, quindi estate ed inverno. Quando apro la pagina deve mostrare la stagione Estate, e quando clicco su Inverno deve caricare la stagione Inverno.

    In pratica nella Rest API io passo la stagione corrente, quindi alla chiamata dell'api io già prevedo questo parametro, e quello che mi manca è solo inserire questo swipe già funzionante dentro di un tabbar, e passare la stagione come parametro direttamente dal tab.

    Voglio anche evitare conflitti fra lo swipeview e il tabbar, perchè nello swipe io uso l'index dello swipe per passarlo all'api per caricare la programmazione della pagina corretta. Ma oltre all'index dello swipe devo passare anche l'index del tab, in maniera separata.

    Spero di esserstato chiaro. Se ci sono dubbi fatemi sapere che cerco di chiarirli meglio.

    Saluti,
    Marco



  • Ho trovato la soluzione facendo in questo modo:

    StackLayout {
            width: parent.width
            currentIndex: bar.currentIndex
            Item {
                id: summerTab
                Loader {
                    property string season: 'summer'
                    sourceComponent: scheduleView
                }
            }
            Item {
                id: winterTab
                Loader {
                    property string season: 'winter'
                    sourceComponent: scheduleView
                }
            }
        }
    

    Ora l'unico problema è che si crea un conflitto di indici perchè sia il TabBar che lo SwipeView usano il currentIndex per spotarsi fra gli elementi. Quindi quando passo da un tab all'altro si sposta anche l'indice dello swipeView, e non vorrei lo facesse.

    Ci sta una soluzione per questo inconveniente?

    Grazie



  • In realtà mi sono appena accorto che non è questione di conflitto, ma di sincronizzazione.

    Praticamente ho come detto 2 tab: Estate ed Inverno, ed ognuno di questi 2 tab ha assumiamo che 3 pagine.

    Sto nella stagione estate e nella pagina 1, e se vado ad inverno mi trovo sempre nella pagina 1.

    Però se dalla pagina estate vado alla pagina 3, in un certo modo si è mosso l'index solo nella stagione estiva, e in quella invernale sono rimasto nella pagina 1.

    Come posso sincronizzare l'index dello swipeView fra i 2 tab? In pratica se dall'estate vado alla pagina 3, e poi vado nel tab inverno, anche l'inverno deve andare sulla pagina 3 appena clicco sul tab inverno. Quindi oltre a switchare e caricare la programmazione invernale, deve portarmi alla stessa pagina che avevo prima di passare in inverno.

    Grazie


Log in to reply