1def row_gap_anim(obj, v):
2    obj.set_style_pad_row(v, 0)
3
4def column_gap_anim(obj, v):
5    obj.set_style_pad_column(v, 0)
6
7#
8# Demonstrate column and row gap
9#
10
11# 60x60 cells
12col_dsc = [60, 60, 60, lv.GRID_TEMPLATE.LAST]
13row_dsc = [40, 40, 40, lv.GRID_TEMPLATE.LAST]
14
15# Create a container with grid
16cont = lv.obj(lv.scr_act())
17cont.set_size(300, 220)
18cont.center()
19cont.set_grid_dsc_array(col_dsc, row_dsc)
20
21for i in range(9):
22    col = i % 3
23    row = i // 3
24
25    obj = lv.obj(cont)
26    obj.set_grid_cell(lv.GRID_ALIGN.STRETCH, col, 1,
27                      lv.GRID_ALIGN.STRETCH, row, 1)
28    label = lv.label(obj)
29    label.set_text("{:d},{:d}".format(col, row))
30    label.center()
31
32    a_row = lv.anim_t()
33    a_row.init()
34    a_row.set_var(cont)
35    a_row.set_values(0, 10)
36    a_row.set_repeat_count(lv.ANIM_REPEAT.INFINITE)
37    a_row.set_time(500)
38    a_row.set_playback_time(500)
39    a_row. set_custom_exec_cb(lambda a,val: row_gap_anim(cont,val))
40    lv.anim_t.start(a_row)
41
42    a_col = lv.anim_t()
43    a_col.init()
44    a_col.set_var(cont)
45    a_col.set_values(0, 10)
46    a_col.set_repeat_count(lv.ANIM_REPEAT.INFINITE)
47    a_col.set_time(500)
48    a_col.set_playback_time(500)
49    a_col. set_custom_exec_cb(lambda a,val: column_gap_anim(cont,val))
50    lv.anim_t.start(a_col)
51
52
53