В настоящее время я создаю приложение цифрового планировщика, в котором я хочу, чтобы пользователь мог просматривать историю своих планов.
Я решил использовать для него 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](https://i.stack.imgur.com/vVqck.png)
Whereas it's supposed to be this long:
введите описание изображения здесь
Заранее спасибо, коллеги-программисты!