Nie wiem co tam dokładnie tworzysz ale ściany tekstu pewnie nie są jakoś mile widziane w apkach mobilnych więc może miałoby sens to podzielić na mniejsze sekcje i rozdziały. Nawigację można by następnie zaimplenetować dla Label
z włączonym markupem (markup=True
), dzięki czemu można wrzucić w tekst linki ([ref=http://google.com]treść linku[/ref]
). Potem w callbacku on_ref_press
można zaimplementować, by podmienił całą zawartość Label
inną treścią. Na szybko:
from kivy.app import App
from kivy.uix.label import Label
MAIN_PAGE = """
* [color=ff0000][ref=PAGE1]Page 1[/ref][/color]
* [color=ff0000][ref=PAGE2]Page 2[/ref][/color]
"""
PAGE1 = """
* [color=ff0000][ref=MAIN_PAGE]Back[/ref][/color]
Blah blah
"""
PAGE2 = """
* [color=ff0000][ref=MAIN_PAGE]Back[/ref][/color]
Zażółć gęślą jaźń
"""
PAGES = {
"MAIN_PAGE": MAIN_PAGE,
"PAGE1": PAGE1,
"PAGE2": PAGE2,
}
class MyLabel(Label):
def on_ref_press(self, ref):
self.text = PAGES[ref]
class MyApp(App):
def build(self):
return MyLabel(text=MAIN_PAGE, markup=True)
if __name__ == "__main__":
MyApp().run()
Pewnie nie byłoby problemem również aby on_ref_press
dla jakiejś wartości implementował scrollowanie do góry.