Python Kivy ScrollView прокрутка не до конца MDList - PullRequest
0 голосов
/ 06 августа 2020

В настоящее время я создаю приложение цифрового планировщика, в котором я хочу, чтобы пользователь мог просматривать историю своих планов.

Я решил использовать для него KivyMD MDList и Kivy ScrollView . Все работает нормально, за исключением одной важной детали: прокрутка не прокручивается до конца MDList . Это похоже на то, что если в конце MDList есть четыре планов, вы сможете просмотреть только один или два из них. Если вы хотите просмотреть остальное, вам придется перетащить прокрутку вверх, что крайне неудобно и может разочаровать пользователя.

Вот немного моего Python кода:

class HistoryWindow(Screen):
    dates, current_date = [str(datetime.today()).split()[0]], am_current_date
    choose_date_button = ObjectProperty()

    def get_plans(self, chosen_date):
        if chosen_date in STORAGE.to_dict:
            return STORAGE.to_dict[chosen_date]
        return []

    def load_plans(self, chosen_date):

        self.plans_list.clear_widgets()
        plans = self.get_plans(chosen_date)  # plans for the date a user chooses.

        for plan in plans:
            button = HistPlanButton(icon=["close", "check"][plan[-1]], text=plan[0], size_hint_y=None)
            self.plans_list.add_widget(button)

Вот фрагмент моего кода Kivy:

<HistoryWindow>:
name: "history"
text: "HISTORY"
icon: "history"

    plans_list: plans_list
    load_stats_btn: load_stats_btn
    choose_date_button: choose_date_button
    current_progress_bar: current_progress_bar

FloatLayout:

    CurrentProgressBar:
        id: current_progress_bar

        size_hint_x: 1
        pos_hint: {"center": (.5, 1)}

    MDLabel:
        text: "Choose the date"

        halign: "center"
        size_hint: 1, .1
        font_size: self.width / 11
        pos_hint: {"center": (.5, .94)}
        color: app.theme_cls.primary_color

    MDFlatButton:
        id: choose_date_button

        size_hint: 1, .1
        text: root.current_date
        font_size: self.width / 15
        pos_hint: {"center": (.5, .84)}
        on_release: root.show_date_picker()

    GridLayout:
        cols: 1
        pos_hint: {"top": .79}

        MDSeparator:

        ScrollView:
            ### THIS PART is what I have a problem with:
            height: self.height
            do_scroll: False, True
            bar_color: app.theme_cls.primary_color

            HistPlansList:
                id: plans_list
                size_hint_y: None
                height: self.minimum_height

    MDFloatingActionButton:
        id: load_stats_btn

        elevation: 5
        icon: "upload"
        size: dp(42), dp(42)
        pos_hint: {"center": (.9, .07)}
        md_bg_color: app.theme_cls.primary_color
        on_release: 
            root.load_plans(choose_date_button.text)

Вот как выглядит конец списка: enter image description here

Whereas it's supposed to be this long:

введите описание изображения здесь

Заранее спасибо, коллеги-программисты!

...