mirror of
https://github.com/lvgl/lvgl.git
synced 2026-02-07 15:02:06 +08:00
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com> Co-authored-by: Liam Howatt <30486941+liamHowatt@users.noreply.github.com>
51 lines
1.6 KiB
C
51 lines
1.6 KiB
C
#include "../lv_examples.h"
|
|
#if LV_BUILD_EXAMPLES && LV_USE_LIST
|
|
|
|
static 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_obj(e);
|
|
|
|
if(code == LV_EVENT_CLICKED) {
|
|
lv_obj_t * list = (lv_obj_t *) 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++;
|
|
|
|
/* Move the button to the foreground*/
|
|
lv_obj_move_to_index(float_btn, -1);
|
|
|
|
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
|