当前位置: 首页 > news >正文

恐龙网站建设网站二级分类

恐龙网站建设,网站二级分类,如何做盗版小说网站,wordpress数据恢复LVGL-列表部件 lv_list_create ■ LVGL-列表部件-函数■ 修改样式-■ 修改样式- 背景色■ 修改样式- 改变项的颜色-label■ 修改样式- 改变项的颜色-btn ■ 事件(Event)■ 示例0:综合■ 示例1(自动出现滚动)■ 示例2(滚动捕捉&…

LVGL-列表部件 lv_list_create

  • ■ LVGL-列表部件-函数
  • ■ 修改样式-
    • ■ 修改样式- 背景色
    • ■ 修改样式- 改变项的颜色-label
    • ■ 修改样式- 改变项的颜色-btn
  • ■ 事件(Event)
  • ■ 示例0:综合
  • ■ 示例1(自动出现滚动)
  • ■ 示例2(滚动捕捉)
  • ■ 示例3(创建带有浮动按钮的列表)
  • ■ 示例4(设置滚动条的样式)
  • ■ 示例5(从右到左基本方向滚动)
  • ■ 示例6(当对象滚动时平移对象)

■ LVGL-列表部件-函数

1. 创建list
lv_obj_t* list1 = lv_list_create(lv_scr_act(), NULL);2. 添加文本
lv_list_add_text(list1, "item4 - try to scroll");4. 增加按键(Add buttons)
list_btn = lv_list_add_btn(list1, NULL, "Open");
list_btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Close");
list_btn = lv_list_add_btn(list1, NULL, "Edit");5. 删除按键(Delete buttons)
lv_list_remove(list, btn_index)6. 清空列表
lv_list_clean(list)7. 手动导航(Manual navigation)
lv_list_up(list)     //选择上一个列表元素
lv_list_down(list)  //选择列表下一个元素  8. 把某一个button获取焦点 
lv_list_focus(btn, LV_ANIM_ON/OFF)9. 布局(Layout)
lv_list_set_layout(list, LV_LAYOUT_ROW_MID) //默认列表是纵向的,但是可以设置为横向10. 边界闪烁(Edge flash)
lv_list_set_edge_flash(list, true)  //开启边界闪烁11. 滚动传播(Scroll propagation)
lv_list_set_scroll_propagation(list, true)12. 事件(Event)
lv_obj_t* list1 = lv_list_create(lv_scr_act(), NULL);
lv_obj_set_size(list1, 160, 200);
lv_obj_align(list1, NULL, LV_ALIGN_CENTER, 0, 0);list_btn = lv_list_add_btn(list1, LV_SYMBOL_FILE, "New");
lv_obj_set_event_cb(list_btn, list_event_handler);list_btn = lv_list_add_btn(list1, LV_SYMBOL_DIRECTORY, "Open");
lv_obj_set_event_cb(list_btn, list_event_handler);

■ 修改样式-

■ 修改样式- 背景色

直接修改list
lv_obj_set_style_bg_color(list1, lv_color_hex(0xff0000), LV_PART_MAIN);

在这里插入图片描述

■ 修改样式- 改变项的颜色-label

item = lv_obj_get_child(list1, 0);
lv_obj_set_style_bg_color(item, lv_color_hex(0xff0000), LV_PART_MAIN);

在这里插入图片描述

■ 修改样式- 改变项的颜色-btn

item = lv_obj_get_child(list1, 5);
lv_obj_set_style_bg_color(item, lv_color_hex(0xff0000), LV_PART_MAIN);

在这里插入图片描述

■ 事件(Event)

static void list_event_handler(lv_obj_t* obj, lv_event_t event)
{if (event == LV_EVENT_CLICKED) {printf("Clicked: %s\n", lv_list_get_btn_text(obj));}
}void lvgl_list_test(void)
{/*Create a list*/lv_obj_t* list1 = lv_list_create(lv_scr_act(), NULL);lv_obj_set_size(list1, 160, 200);lv_obj_align(list1, NULL, LV_ALIGN_CENTER, 0, 0);/*Add buttons to the list*/lv_obj_t* list_btn;list_btn = lv_list_add_btn(list1, LV_SYMBOL_FILE, "New");lv_obj_set_event_cb(list_btn, list_event_handler);list_btn = lv_list_add_btn(list1, LV_SYMBOL_DIRECTORY, "Open");lv_obj_set_event_cb(list_btn, list_event_handler);}

■ 示例0:综合

/* 获取当前活动屏幕的宽高 */
#define scr_act_width() lv_obj_get_width(lv_scr_act())
#define scr_act_height() lv_obj_get_height(lv_scr_act())static lv_obj_t *list;              /* 定义列表 */
static lv_obj_t *list_label;        /* 定义标签 */
static const lv_font_t *font;       /* 定义字体 *//*** @brief  列表按钮事件回调* @param  *e :事件相关参数的集合,它包含了该事件的所有数据* @return 无*/
static void list_btn_event_cb(lv_event_t *e)
{lv_obj_t *list_btn = lv_event_get_target(e);                                   /* 获取触发源 */lv_label_set_text(list_label, lv_list_get_btn_text(list, list_btn));           /* 获取按钮文本并显示 */lv_obj_add_state(list_btn, LV_STATE_FOCUS_KEY);                                /* 添加状态(聚焦) */
}/*** @brief  例* @param  无* @return 无*/
static void lv_example_list(void)
{font = &lv_font_montserrat_18;/* 创建左侧矩形背景 */lv_obj_t* obj_left = lv_obj_create(lv_scr_act());                               /* 创建一个基础对象 */lv_obj_set_width(obj_left, scr_act_width() * 0.7);                              /* 设置宽度 */lv_obj_set_height(obj_left, scr_act_height() * 0.9);                            /* 设置高度 */lv_obj_align(obj_left, LV_ALIGN_LEFT_MID, 5, 0);                                /* 设置位置 */lv_obj_update_layout(obj_left);                                                 /* 手动更新物体的参数 *//* 创建右侧矩形背景 */lv_obj_t* obj_right = lv_obj_create(lv_scr_act());                              /* 创建一个基础对象 */lv_obj_set_width(obj_right, scr_act_width() - lv_obj_get_width(obj_left) - 15); /* 设置宽度 */lv_obj_set_height(obj_right, lv_obj_get_height(obj_left));                      /* 设置高度 */lv_obj_align_to(obj_right, obj_left, LV_ALIGN_OUT_RIGHT_MID, 5, 0);             /* 设置位置 */lv_obj_update_layout(obj_right);                                                /* 手动更新物体的参数 *//* 显示当前选项的文本内容 */list_label = lv_label_create(obj_right);                                        /* 创建标签 */lv_obj_set_width(list_label, lv_obj_get_width(obj_right) - 13);                 /* 设置标签的宽度 */lv_obj_align(list_label, LV_ALIGN_TOP_MID, 0, 5);                               /* 设置标签位置 */lv_obj_update_layout(list_label);                                               /* 手动更新标签的参数 */lv_obj_set_style_text_align(list_label, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);    /* 设置标签文本对齐方式 */lv_label_set_text(list_label, "New");                                           /* 设置标签文本 */lv_obj_set_style_text_font(list_label, font, LV_PART_MAIN);                     /* 设置标签文本字体 *//* 创建列表 */list = lv_list_create(obj_left);                                                /* 创建列表 */lv_obj_set_width(list, lv_obj_get_width(obj_left) * 0.8);                       /* 设置列表宽度 */lv_obj_set_height(list, lv_obj_get_height(obj_left) * 0.9);                     /* 设置列表高度 */lv_obj_center(list);                                                            /* 设置列表的位置 */lv_obj_set_style_text_font(list, font, LV_PART_MAIN);                           /* 设置字体 *//* 为列表添加按钮 */lv_obj_t* btn;lv_list_add_text(list, "File");                                                 /* 添加列表文本 */btn = lv_list_add_btn(list, LV_SYMBOL_FILE, "New");                             /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_DIRECTORY, "Open");                       /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_SAVE, "Save");                            /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_CLOSE, "Delete");                         /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_EDIT, "Edit");                            /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */lv_list_add_text(list, "Connectivity");                                         /* 添加列表文本 */btn = lv_list_add_btn(list, LV_SYMBOL_BLUETOOTH, "Bluetooth");                  /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_GPS, "Navigation");                       /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_USB, "USB");                              /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_BATTERY_FULL, "Battery");                 /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */lv_list_add_text(list, "Exit");                                                 /* 添加列表文本 */btn = lv_list_add_btn(list, LV_SYMBOL_OK, "Apply");                             /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */btn = lv_list_add_btn(list, LV_SYMBOL_CLOSE, "Close");                          /* 添加按钮 */lv_obj_add_event_cb(btn, list_btn_event_cb, LV_EVENT_CLICKED, NULL);            /* 添加按钮回调 */
}

在这里插入图片描述

■ 示例1(自动出现滚动)

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES/*** Demonstrate how scrolling appears automatically*/
void lv_example_scroll_1(void)
{/*Create an object with the new style*/lv_obj_t * panel = lv_obj_create(lv_screen_active());lv_obj_set_size(panel, 200, 200);lv_obj_center(panel);lv_obj_t * child;lv_obj_t * label;child = lv_obj_create(panel);lv_obj_set_pos(child, 0, 0);lv_obj_set_size(child, 70, 70);label = lv_label_create(child);lv_label_set_text(label, "Zero");lv_obj_center(label);child = lv_obj_create(panel);lv_obj_set_pos(child, 160, 80);lv_obj_set_size(child, 80, 80);lv_obj_t * child2 = lv_button_create(child);lv_obj_set_size(child2, 100, 50);label = lv_label_create(child2);lv_label_set_text(label, "Right");lv_obj_center(label);child = lv_obj_create(panel);lv_obj_set_pos(child, 40, 160);lv_obj_set_size(child, 100, 70);label = lv_label_create(child);lv_label_set_text(label, "Bottom");lv_obj_center(label);
}#endif

在这里插入图片描述

■ 示例2(滚动捕捉)

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES && LV_USE_FLEXstatic void sw_event_cb(lv_event_t * e)
{lv_event_code_t code = lv_event_get_code(e);lv_obj_t * sw = lv_event_get_target(e);if(code == LV_EVENT_VALUE_CHANGED) {lv_obj_t * list = lv_event_get_user_data(e);if(lv_obj_has_state(sw, LV_STATE_CHECKED)) lv_obj_add_flag(list, LV_OBJ_FLAG_SCROLL_ONE);else lv_obj_remove_flag(list, LV_OBJ_FLAG_SCROLL_ONE);}
}/*** Show an example to scroll snap*/
void lv_example_scroll_2(void)
{lv_obj_t * panel = lv_obj_create(lv_screen_active());lv_obj_set_size(panel, 280, 120);lv_obj_set_scroll_snap_x(panel, LV_SCROLL_SNAP_CENTER);lv_obj_set_flex_flow(panel, LV_FLEX_FLOW_ROW);lv_obj_align(panel, LV_ALIGN_CENTER, 0, 20);uint32_t i;for(i = 0; i < 10; i++) {lv_obj_t * btn = lv_button_create(panel);lv_obj_set_size(btn, 150, lv_pct(100));lv_obj_t * label = lv_label_create(btn);if(i == 3) {lv_label_set_text_fmt(label, "Panel %"LV_PRIu32"\nno snap", i);lv_obj_remove_flag(btn, LV_OBJ_FLAG_SNAPPABLE);}else {lv_label_set_text_fmt(label, "Panel %"LV_PRIu32, i);}lv_obj_center(label);}lv_obj_update_snap(panel, LV_ANIM_ON);#if LV_USE_SWITCH/*Switch between "One scroll" and "Normal scroll" mode*/lv_obj_t * sw = lv_switch_create(lv_screen_active());lv_obj_align(sw, LV_ALIGN_TOP_RIGHT, -20, 10);lv_obj_add_event_cb(sw, sw_event_cb, LV_EVENT_ALL, panel);lv_obj_t * label = lv_label_create(lv_screen_active());lv_label_set_text(label, "One scroll");lv_obj_align_to(label, sw, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);
#endif
}#endif

在这里插入图片描述

■ 示例3(创建带有浮动按钮的列表)

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES && LV_USE_LISTstatic uint32_t btn_cnt = 1;static void float_button_event_cb(lv_event_t * e)
{lv_event_code_t code = lv_event_get_code(e);lv_obj_t * float_btn = lv_event_get_target(e);if(code == LV_EVENT_CLICKED) {lv_obj_t * list = lv_event_get_user_data(e);char buf[32];lv_snprintf(buf, sizeof(buf), "Track %d", (int)btn_cnt);lv_obj_t * list_btn = lv_list_add_button(list, LV_SYMBOL_AUDIO, buf);btn_cnt++;lv_obj_move_foreground(float_btn);lv_obj_scroll_to_view(list_btn, LV_ANIM_ON);}
}/*** Create a list with a floating button*/
void lv_example_scroll_3(void)
{lv_obj_t * list = lv_list_create(lv_screen_active());lv_obj_set_size(list, 280, 220);lv_obj_center(list);for(btn_cnt = 1; btn_cnt <= 2; btn_cnt++) {char buf[32];lv_snprintf(buf, sizeof(buf), "Track %d", (int)btn_cnt);lv_list_add_button(list, LV_SYMBOL_AUDIO, buf);}lv_obj_t * float_btn = lv_button_create(list);lv_obj_set_size(float_btn, 50, 50);lv_obj_add_flag(float_btn, LV_OBJ_FLAG_FLOATING);lv_obj_align(float_btn, LV_ALIGN_BOTTOM_RIGHT, 0, -lv_obj_get_style_pad_right(list, LV_PART_MAIN));lv_obj_add_event_cb(float_btn, float_button_event_cb, LV_EVENT_ALL, list);lv_obj_set_style_radius(float_btn, LV_RADIUS_CIRCLE, 0);lv_obj_set_style_bg_image_src(float_btn, LV_SYMBOL_PLUS, 0);lv_obj_set_style_text_font(float_btn, lv_theme_get_font_large(float_btn), 0);
}#endif

在这里插入图片描述

■ 示例4(设置滚动条的样式)

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES && LV_USE_LIST/*** Styling the scrollbars*/
void lv_example_scroll_4(void)
{lv_obj_t * obj = lv_obj_create(lv_screen_active());lv_obj_set_size(obj, 200, 100);lv_obj_center(obj);lv_obj_t * label = lv_label_create(obj);lv_label_set_text(label,"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n""Etiam dictum, tortor vestibulum lacinia laoreet, mi neque consectetur neque, vel mattis odio dolor egestas ligula. \n""Sed vestibulum sapien nulla, id convallis ex porttitor nec. \n""Duis et massa eu libero accumsan faucibus a in arcu. \n""Ut pulvinar odio lorem, vel tempus turpis condimentum quis. Nam consectetur condimentum sem in auctor. \n""Sed nisl augue, venenatis in blandit et, gravida ac tortor. \n""Etiam dapibus elementum suscipit. \n""Proin mollis sollicitudin convallis. \n""Integer dapibus tempus arcu nec viverra. \n""Donec molestie nulla enim, eu interdum velit placerat quis. \n""Donec id efficitur risus, at molestie turpis. \n""Suspendisse vestibulum consectetur nunc ut commodo. \n""Fusce molestie rhoncus nisi sit amet tincidunt. \n""Suspendisse a nunc ut magna ornare volutpat.");/*Remove the style of scrollbar to have clean start*/lv_obj_remove_style(obj, NULL, LV_PART_SCROLLBAR | LV_STATE_ANY);/*Create a transition the animate the some properties on state change*/static const lv_style_prop_t props[] = {LV_STYLE_BG_OPA, LV_STYLE_WIDTH, 0};static lv_style_transition_dsc_t trans;lv_style_transition_dsc_init(&trans, props, lv_anim_path_linear, 200, 0, NULL);/*Create a style for the scrollbars*/static lv_style_t style;lv_style_init(&style);lv_style_set_width(&style, 4);      /*Width of the scrollbar*/lv_style_set_pad_right(&style, 5);  /*Space from the parallel side*/lv_style_set_pad_top(&style, 5);    /*Space from the perpendicular side*/lv_style_set_radius(&style, 2);lv_style_set_bg_opa(&style, LV_OPA_70);lv_style_set_bg_color(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_border_color(&style, lv_palette_darken(LV_PALETTE_BLUE, 3));lv_style_set_border_width(&style, 2);lv_style_set_shadow_width(&style, 8);lv_style_set_shadow_spread(&style, 2);lv_style_set_shadow_color(&style, lv_palette_darken(LV_PALETTE_BLUE, 1));lv_style_set_transition(&style, &trans);/*Make the scrollbars wider and use 100% opacity when scrolled*/static lv_style_t style_scrolled;lv_style_init(&style_scrolled);lv_style_set_width(&style_scrolled, 8);lv_style_set_bg_opa(&style_scrolled, LV_OPA_COVER);lv_obj_add_style(obj, &style, LV_PART_SCROLLBAR);lv_obj_add_style(obj, &style_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED);
}#endif

在这里插入图片描述

■ 示例5(从右到左基本方向滚动)

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES && LV_FONT_DEJAVU_16_PERSIAN_HEBREW/*** Scrolling with Right To Left base direction*/
void lv_example_scroll_5(void)
{lv_obj_t * obj = lv_obj_create(lv_screen_active());lv_obj_set_style_base_dir(obj, LV_BASE_DIR_RTL, 0);lv_obj_set_size(obj, 200, 100);lv_obj_center(obj);lv_obj_t * label = lv_label_create(obj);lv_label_set_text(label,"میکروکُنترولر (به انگلیسی: Microcontroller) گونه‌ای ریزپردازنده است که دارای حافظهٔ دسترسی تصادفی (RAM) و حافظهٔ فقط‌خواندنی (ROM)، تایمر، پورت‌های ورودی و خروجی (I/O) و درگاه ترتیبی (Serial Port پورت سریال)، درون خود تراشه است، و می‌تواند به تنهایی ابزارهای دیگر را کنترل کند. به عبارت دیگر یک میکروکنترلر، مدار مجتمع کوچکی است که از یک CPU کوچک و اجزای دیگری مانند تایمر، درگاه‌های ورودی و خروجی آنالوگ و دیجیتال و حافظه تشکیل شده‌است.");lv_obj_set_width(label, 400);lv_obj_set_style_text_font(label, &lv_font_dejavu_16_persian_hebrew, 0);}#endif

在这里插入图片描述

■ 示例6(当对象滚动时平移对象)

#include "../lv_examples.h"
#if LV_BUILD_EXAMPLES && LV_USE_FLEXstatic void scroll_event_cb(lv_event_t * e)
{lv_obj_t * cont = lv_event_get_target(e);lv_area_t cont_a;lv_obj_get_coords(cont, &cont_a);int32_t cont_y_center = cont_a.y1 + lv_area_get_height(&cont_a) / 2;int32_t r = lv_obj_get_height(cont) * 7 / 10;uint32_t i;uint32_t child_cnt = lv_obj_get_child_count(cont);for(i = 0; i < child_cnt; i++) {lv_obj_t * child = lv_obj_get_child(cont, i);lv_area_t child_a;lv_obj_get_coords(child, &child_a);int32_t child_y_center = child_a.y1 + lv_area_get_height(&child_a) / 2;int32_t diff_y = child_y_center - cont_y_center;diff_y = LV_ABS(diff_y);/*Get the x of diff_y on a circle.*/int32_t x;/*If diff_y is out of the circle use the last point of the circle (the radius)*/if(diff_y >= r) {x = r;}else {/*Use Pythagoras theorem to get x from radius and y*/uint32_t x_sqr = r * r - diff_y * diff_y;lv_sqrt_res_t res;lv_sqrt(x_sqr, &res, 0x8000);   /*Use lvgl's built in sqrt root function*/x = r - res.i;}/*Translate the item by the calculated X coordinate*/lv_obj_set_style_translate_x(child, x, 0);/*Use some opacity with larger translations*/lv_opa_t opa = lv_map(x, 0, r, LV_OPA_TRANSP, LV_OPA_COVER);lv_obj_set_style_opa(child, LV_OPA_COVER - opa, 0);}
}/*** Translate the object as they scroll*/
void lv_example_scroll_6(void)
{lv_obj_t * cont = lv_obj_create(lv_screen_active());lv_obj_set_size(cont, 200, 200);lv_obj_center(cont);lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_COLUMN);lv_obj_add_event_cb(cont, scroll_event_cb, LV_EVENT_SCROLL, NULL);lv_obj_set_style_radius(cont, LV_RADIUS_CIRCLE, 0);lv_obj_set_style_clip_corner(cont, true, 0);lv_obj_set_scroll_dir(cont, LV_DIR_VER);lv_obj_set_scroll_snap_y(cont, LV_SCROLL_SNAP_CENTER);lv_obj_set_scrollbar_mode(cont, LV_SCROLLBAR_MODE_OFF);uint32_t i;for(i = 0; i < 20; i++) {lv_obj_t * btn = lv_button_create(cont);lv_obj_set_width(btn, lv_pct(100));lv_obj_t * label = lv_label_create(btn);lv_label_set_text_fmt(label, "Button %"LV_PRIu32, i);}/*Update the buttons position manually for first*/lv_obj_send_event(cont, LV_EVENT_SCROLL, NULL);/*Be sure the fist button is in the middle*/lv_obj_scroll_to_view(lv_obj_get_child(cont, 0), LV_ANIM_OFF);
}#endif

在这里插入图片描述

http://www.yayakq.cn/news/80974/

相关文章:

  • 东莞公司网站建设公司企业网站的推广形式有哪些
  • 郑州电商网站开发做外卖那些网站好
  • 重庆做网站重庆做网站vr 做的网站
  • 湖南交通建设监理协会网站乔拓云智能建站系统
  • php做网站的技术难点wordpress网站维护插件
  • 婴幼儿用品网站开发意义建设部网站首页格式合同
  • 网站建设工作总结范文资源网站快速优化排名
  • 有什么好的网站设计思想的博客项城网站设计
  • 常州外贸网站设计昆明网络推广怎么做
  • 新闻类网站开发多久给被k的网站做友链
  • 五金公司网站模板网站正在建设中
  • 商品展示型网站有哪些什么是网络营销和网络营销的职能
  • 海口网站建设哪家好域名有了怎么制作网站
  • 国外知名设计网站大全结构设计网站推荐
  • 寿光网站建设哪里可以免费推广广告
  • 广西住房和城乡建设网站视频专栏sns电商网站
  • 深圳网站搭建ps软件下载官方网站
  • 网站内部资源推广怎么做建设网站需要花费什么费用
  • 希音电商网站外国黄冈网站推广软件
  • 海南省两学一做网站dw制作一个环保网站模板下载
  • 企业网站建设要注意哪方面国家信息企业公示系统查询
  • 做豆腐交流经验的网站做网站设计需要哪些软件
  • 无锡市政建设集团有限公司网站广告网站布局
  • 完全的图片宣传网站怎么做织梦网站中的对话框怎摸做
  • 怎么用手机创造网站不用付费就可以看亏亏的app
  • 怎么看一个网站是谁做的org域名不能注册了
  • 租一个服务器要多少钱成都网站建设优化公司
  • 网站的配色技巧厦门做网站推广
  • 网站如何做提现功能西宁网站建设公司哪家好
  • 西安建网站网站推广不关网站备案