Как в Python-Kivy настроить ширину столбца RecyclerView для его дочерних элементов - PullRequest
0 голосов
/ 04 ноября 2019

Я разрабатываю приложение Python с использованием Kivy.
Я хотел бы создать RecyclerView с результатами из моей базы данных.
Я хотел бы иметь строку из 16 столбцов. В каждой строке я хотел бы, чтобы ширина метки была настроена на ширину текста в метке. Я знаю, что могу сделать это так:

<RowLabel@Label>:
    size_hint_x: None
    width: self.texture_size[0]

Каждая строка, которую я сделал таким образом:

<Row>:
    canvas.before:
        Color:
            rgba: (.0, 0.9, .1, .3) if self.selected else (0, 0, 0, 1)
        Rectangle:
            pos: self.pos
            size: self.size
    label1_text: 'label 1 text'
    label2_text: 'label 2 text'
    label3_text: 'label 3 text'
    label4_text: 'label 4 text'
    label5_text: 'label 5 text'
    label6_text: 'label 6 text'
    label7_text: 'label 7 text'
    label8_text: 'label 8 text'
    label9_text: 'label 9 text label 9 tex label 9 tex label 9 tex label 9 texlabel 9 tex'
    label10_text: 'label 10 text'
    label11_text: 'label 11 text'
    label12_text: 'label 12 text'
    label13_text: 'label 13 text'
    label14_text: 'label 14 text'
    label15_text: 'label 15 text'
    label16_text: 'label 16 text label 16 text label 16 text label 16 text label 16 text'
    pos: self.pos
    size: self.size

    cols_minimum: self.cols_minimum

    RowLabel:
        id: id_label1
        text: root.label1_text
    RowLabel:
        id: id_label2
        text: root.label2_text
    RowLabel:
        id: id_label3
        text: root.label3_text
    RowLabel:
        id: id_label4
        text: root.label4_text
    RowLabel:
        id: id_label5
        text: root.label5_text
    RowLabel:
        id: id_label6
        text: root.label6_text
    RowLabel:
        id: id_label7
        text: root.label7_text
    RowLabel:
        id: id_label8
        text: root.label8_text
    RowLabel:  
        id: id_label9
        text: root.label9_text
    RowLabel:
        id: id_label10
        text: root.label10_text
    RowLabel:
        id: id_label11
        text: root.label11_text
    RowLabel:
        id: id_label12
        text: root.label12_text
    RowLabel:
        id: id_label13
        text: root.label13_text
    RowLabel:  
        id: id_label14
        text: root.label14_text
    RowLabel:
        id: id_label15
        text: root.label15_text
    RowLabel:
        id: id_label16
        text: root.label16_text

Строка наследуется от RecycleDataViewBehavior и GridLayout.
И мой RecyclerView:

<RV>:
    viewclass: 'Row'
    SelectableRecycleBoxLayout:
        default_size: None, dp(56)
        default_size_hint: 1, None
        size_hint_y: None
        width: "4000dp"
        size_hint_x: None
        height: self.minimum_height
        orientation: 'vertical'
        multiselect: False                                                           
        touch_multiselect: False

Но тогда один столбец в разных строках имеет разную ширину. Как установить максимальную ширину столбца RecyclerView из всех строк?
С уважением!

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