Может кто-нибудь помочь мне исправить этот ScrollView? - PullRequest
0 голосов
/ 13 января 2019

Когда я запускаю код ниже, я не могу прокрутить. Я хотел бы прокрутить весь экран.

Как мне этого добиться?

from kivy.base import runTouchApp
#kivy.require("1.8.0")
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder
from kivy.config import Config
from kivy.uix.scrollview import ScrollView
from kivy.properties import StringProperty
Config.set('graphics', 'window_state', 'maximized')
Builder.load_string('''
<ScrollableLabel>:
    FloatLayout:
        AsyncImage:
            source:''  #html here               
            allow_stretch: True
            keep_ratio: False
            pos_hint: {"top": 1, 'right':1}
            size_hint: 1, 1 
        AsyncImage:
            source:'' #html here 
            allow_stretch: True               
            keep_ratio: True             
            pos_hint: {"top": 1, 'right':0.13}
            size_hint: 0.15, 0.15    
        Label:
            color: [66/255,134/255,244/255,1]
            height: 40
            font_size: 25
            italic: 1 
            bold: 1
            text: 'testing'
            pos_hint: {"top": 0.96, 'right': 0.24}
            size_hint: 0.1, 0.1
        Label:
            color: [66/255,134/255,244/255,1]
            height: 40
            font_size: 50
            italic: 1 
            bold: 1
            text: 'Testing\\nTesting1\\nTesting2\\nTesting3\\nTesting4'
            pos: root.x, root.y+25
            size_hint: 0.1, 0.1

''')

class ScrollableLabel(ScrollView):
    text = StringProperty('')

if __name__ == "__main__":
    runTouchApp(ScrollableLabel())

Все показывает, но полоса прокрутки не показывает.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Я нашел ответ.

Во-первых, вы должны установить size_hint: (1, None), чтобы вы могли установить height: 40, который определяет, как долго вы можете прокручивать.

если вы не знаете, сколько времени вам нужно установить, вы можете установить так: height: sum([c.height for c in self.children])

0 голосов
/ 13 января 2019

У дочернего элемента ScrollView должна быть хотя бы одна часть size_hint, установленная на None, в противном случае по умолчанию size_hint: 1,1 делает дочерний элемент того же размера, что и ScrollView, поэтому прокручивать нечего , Так что просто измените начальную часть вашего ScrollableLabel правила следующим образом:

<ScrollableLabel>:
    bar_width: 20
    FloatLayout:
        size_hint: None, None
        size: 3000, 3000

Мой выбор 3000 является произвольным, и просто для гарантии, что FloatLayout больше, чем ScrollView. А bar_width облегчает просмотр полосы прокрутки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...