grid的相关API - lightdong/LVGL_Study GitHub Wiki

/*网络布局,就像是excel表一样*/

/*创建一个父对象*/
    lv_obj_t *father = lv_obj_create(lv_scr_act());
    lv_obj_set_size(father,210,210);
    lv_obj_center(father);
    lv_obj_set_style_pad_all(father,0,LV_STATE_DEFAULT | LV_PART_MAIN);
/*如果要创建一个网格的话,就要先去定义行与列*/

/*定义行与列时要使用静态数组,中间传递进去对应的宽度或高度,最后一个参数默认是LV_GRID_TEMPLATE_LAST_*/

/*在设置所占宽度 或 高度时,也可以使用比例的方式,lv_grid_fr*/
    static lv_coord_t column_dsc[] = {40,40,80,LV_GRID_TEMPLATE_LAST};
    static lv_coord_t raw_dsc[] = {40,80,40,LV_GRID_TEMPLATE_LAST};
    lv_obj_set_grid_dsc_array(father,column_dsc,raw_dsc);//给父对象,添加上表格
    /*还可以设置整个表格区域在父对象中的对齐位置*/
    lv_obj_set_grid_align(father,LV_GRID_ALIGN_END,LV_GRID_ALIGN_END);
    /*也可以去设置行与列的间距*/
    lv_obj_set_style_pad_column(father,20,LV_STATE_DEFAULT | LV_PART_MAIN);
    lv_obj_set_style_pad_row(father,20,LV_STATE_DEFAULT | LV_PART_MAIN);
/*给表格添加部件*/
    lv_obj_t *btn1 = lv_btn_create(father);//从创建的父对象上,去创建部件
    /*添加创建的部件到表格中参数有一点多,第一个参数是自己创建的部件*/
    /*紧着的三个参数分别是列的对齐方式,列的位置,在创建时占用了多少个列(有点像合并单元格的意思)*/
    /*最后的三个参数分别是行的对齐方式,行的位置,在创建时占用了多少个行(有点像合并单元格的意思)*/
    lv_obj_set_grid_cell(btn1,LV_GRID_ALIGN_START,0,1,LV_GRID_ALIGN_STRETCH,0,1);//第1列第1行,不合并单元格,默认在单元格的左上角
    /*TASK:创建一个单元格,位于第2列第2行,并合并两列*/
    /*stretch可以自己在一个方向上填满单元格*/
    lv_obj_t *btn2= lv_btn_create(father);
    lv_obj_set_grid_cell(btn2,LV_GRID_ALIGN_STRETCH,1,2,LV_GRID_ALIGN_STRETCH,1,1);
/*在四个角上都放上按钮,方便观察现象*/
    lv_obj_t *btn3= lv_btn_create(father);
    lv_obj_set_grid_cell(btn3,LV_GRID_ALIGN_STRETCH,2,1,LV_GRID_ALIGN_STRETCH,0,1);

    lv_obj_t *btn4= lv_btn_create(father);
    lv_obj_set_grid_cell(btn4,LV_GRID_ALIGN_STRETCH,0,1,LV_GRID_ALIGN_STRETCH,2,1);

    lv_obj_t *btn5= lv_btn_create(father);
    lv_obj_set_grid_cell(btn5,LV_GRID_ALIGN_STRETCH,2,1,LV_GRID_ALIGN_STRETCH,2,1);