Я использую Screenmanager, чтобы показать пользователю 6 разных экранов.Чтобы показать значения базы данных, я создал сетку данных с помощью RecycleView.Сетка выглядит следующим образом:
К сожалению, когда пользователь выбирает экран «Измерение», требуется несколько секунд, чтобы отобразить сетку данных или она показывает задержкусетки.Также, когда пользователь выбирает строку, отображение экрана позади занимает до 2 секунд.Если пользователь нажимает на разные экраны, которые также содержат много материала, графический интерфейс работает бегло.GUI работает на моем RaspberryPi 3 с сенсорным экраном.Если приложение работает, аппаратные средства Raspberry не очень заняты, поэтому это не будет проблемой аппаратного питания.
Файл kv:
<SelectableButtonGridMeasure>:
# Draw a background to indicate selection
canvas.before:
Color:
rgba: (0.19, 0.35, 0.45, 1) if self.selected else (0, 0, 0, 1)
Rectangle:
pos: self.pos
size: self.size
background_normal: ''
background_down: 'icons/bkgrd-down-color.png'
background_color: 0.25, 0.24, 0.33, 70
on_press: app.root.ids.scr_mngr.current = 'screenmeasuringtask'
Wsrmescreenmeasure:
<Wsrmescreenmeasure>:
id: wsrmescreen_measure_kv
grid_measuring_task: grid_kvmeasuring_task
padding: 30
spacing: 10
viewclass: 'SelectableButtonGridMeasure'
SelectableRecycleGridLayoutMeasure:
id: grid_kvmeasuring_task
default_size: None, dp(35)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
multiselect: False
touch_multiselect: False
cols: 5
markup: True
Добавление данных в сетку:
# Put data to datagrid in screenmeasure
Wsrmescreenmeasure.data = temp_data
# Update inserted data in data grid
Wsrmescreenmeasure.refresh_from_data(App.get_running_app().
root.ids.screenmeasure_kv.grid_measuring_task.recycleview)
Создание таблицы данных:
# Datagrid measure
class Wsrmescreenmeasure(RecycleView):
def __init__(self, **kwargs):
super(Wsrmescreenmeasure, self).__init__(**kwargs)
# Design datagrid for measuring tasks
self.data = w_logic.WsrmeLogic.get_data(self)
В чем может быть причина этих лагов?Если я уменьшу содержание сетки данных (например, с 10 до 5 строк), я чувствую, что она идет немного быстрее.Я измерил время для заполнения данных и т. Д. С помощью декораторов, но я не нашел подсказки.