Как активировать горизонтальную прокрутку в Kivy Recycleview? - PullRequest
0 голосов
/ 08 октября 2019

Мне нужна возможность горизонтальной прокрутки в RecycleView, который я использую в своем приложении, но не могу заставить его работать. Я нашел рабочий скрипт для ScrollView, но он не работает с RecycleView.

Я сделал небольшой рабочий пример, где do_scroll_x должен позволять мне прокручивать по горизонтали, но яне получите полосу прокрутки и перетаскивание тоже не поможет. Кто-нибудь может показать мне пример, который на самом деле работает?

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView

Builder.load_string('''
<table@BoxLayout>:
    col1: ''
    col2: ''
    col3: ''
    col4: ''
    size_hint: None, None
    width: 1600
    height: 32
    orientation: 'horizontal'
    Label:
        text: root.col1
    Label:
        text: root.col2
    Label:
        text: root.col3
    Label:
        text: root.col4

<RV>:
    viewclass: 'table'
    scroll_type: ['bars','content']
    bar_width: 16
    do_scroll_x: True
    do_scroll_y: True
    size_hint: 1, 1
    RecycleBoxLayout:
        default_size: None, None
        default_size_hint: None, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
''')

class RV(RecycleView):
    def __init__(self, **kwargs):
        super(RV, self).__init__(**kwargs)
        self.data = [{'col1': 'Just some Text to fill the void', 'col2': 'Another, shorter Text', 'col3': f'And now some numbers: {x}', 'col4': 'Lorem Ipsum Dolor'} for x in range(200)]


class TestApp(App):
    def build(self):
        return RV()

if __name__ == '__main__':
    TestApp().run()

1 Ответ

1 голос
/ 08 октября 2019

В вашем kv вам просто нужно сделать то же самое для горизонтального направления, что и для вертикального. Измените правило RecycleBoxLayout, чтобы оно включало:

    size_hint_y: None
    size_hint_x: None
    height: self.minimum_height
    width: self.minimum_width
...