(QML) Flickable funktioniert nicht wie erwartet

26

Während ich eine Ubuntu-App erstellte, musste ich sie zum flickableScrollen verwenden. Jetzt habe ich den Code des Formulars

Page{
  ...
  Flickable {
    anchors.fill: parent
    content.height: element1.height + element2.height ...

    ...
  }
}

Wenn ich es auf meinem Telefon ausführe (ubuntu utopic), ist die Standardposition des Flickable einige hundert Pixel niedriger als der Header. Wenn ich es aufklappe, bleibt es von Anfang an in der richtigen Position. Wenn Sie mit dem Seitenstapel eine andere Seite verschieben, kehren Sie zu dieser Seite zurück, die sich in der richtigen Position befindet. Warum ist das so und wie kann ich es beheben, damit es von Anfang an in der richtigen Position ist?

Hinweis : Ich habe viele Kombinationen mit Ankern, Breite, Höhe und allem versucht. Einmal brachte ich es dazu, in der Position zu bleiben, aber beim Hochklappen überlappte es den Header.

user2563892
quelle
1
Diese Frage gehört wirklich zu Stack Overflow. Und Sie sollten einen größeren Codeausschnitt bereitstellen: Ich denke, der Täter ist inhaltlich. QML ist ein sehr fragiles und skurriles System mit vielen unlogischen Abhängigkeiten.
Barafu Albino
2
@BarafuAlbino Ich denke, es passt besser hierher, weil ich denke, dass es sehr SDK-spezifisch ist. Denken Sie nicht, dass sich Raw-Qml so verhält. Auch dies könnte ein Fehler sein, wie ich beim Hochklappen sagte, bleibt es in der richtigen Position.
user2563892
1
Ja, bitte hinterlassen Sie diese Frage hier, wo andere Ubuntu-App-Entwickler davon profitieren
mhall119
@ mhall119 Danke, dass du für mich aufgestanden bist, zumindest werden sie dir zuhören :)
user2563892
3
@BarafuAlbino Diese Frage ist hier völlig in Ordnung. Fragen zur Entwicklung unter Ubuntu sind in der Hilfe zu finden .
Seth

Antworten:

0

Es gibt viel zu wenig qml, um zu sehen, was los ist, zumal sich alle Komponentenpositionen gegenseitig beeinflussen.

Eine Lösung wäre, das zu tun, was Sie getan haben, um Ihr Flickable in die richtige Position zu bringen, und dann die clip: trueEigenschaft hinzuzufügen , um zu verhindern, dass es den Header überlappt.

binamenator
quelle