Ich habe eine FloatLayout
als Kind von ScrollView
mit size_hint_y
auf None
festgelegt. Ich möchte es erweitern können, während ich mehr und mehr Inhalt hinzufüge. Das Problem ist, dass, da Kivys Koordinatensystem unten links beginnt, wenn ich zur Höhe FloatLayout
hinzufüge, der gesamte Inhalt unten bleibt. Kann ich es irgendwie verlängern? Weil ich nicht denke, dass das Bewegen aller Widgets effizient ist, besonders wenn es viele von ihnen gibt und ich auch die Position aller Kinder handhaben muss.
Hier ist ein Ausschnitt, den das problematische Verhalten erklärt:Erweitern der Kivy ScrollView Inhalte
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.uix.label import Label
class TestApp(App):
def extend_h(self, *args):
global msg_float
msg_float.height += 50
def build(self):
global msg_float
msg_float = FloatLayout(size_hint_y = None)
bt1_main = Button(on_press = self.extend_h)
bl = BoxLayout()
sc = ScrollView()
sc.add_widget(msg_float)
bl.add_widget(sc)
bl.add_widget(bt1_main)
lb = Label(text = "Test",
size=(100,200),
size_hint = (None, None))
msg_float.add_widget(lb)
return bl
TestApp().run()
Mit einem Knopfdruck, der Blick erstreckt und das "Test"
Etikett bleibt am Boden, aber ich würde wollen, dass es an der Spitze bleiben.