How can i use silder implement a slider switch?

I want to implement a slider switch,do not a simply switch;
I try use slider implement waht i want,but i don’t control slider drop area.
I want use slider switch to avoid it touched by mistake.

Now it’s like this, but i want .
image
image

void slider_OutputSwitch()
{
    /*Create a transition*/
    static const lv_style_prop_t props[] = { LV_STYLE_BG_COLOR, 0 };
    static lv_style_transition_dsc_t transition_dsc;
    lv_style_transition_dsc_init(&transition_dsc, props, lv_anim_path_linear, 50, 0, NULL);

    static lv_style_t style_main;
    static lv_style_t style_indicator; //滑块
    static lv_style_t style_knob; //绘制的矩形
    static lv_style_t style_pressed_color; //按压时
    lv_style_init(&style_main);
    lv_style_set_bg_opa(&style_main, LV_OPA_COVER);
    lv_style_set_bg_color(&style_main, lv_color_hex3(0xbbb));
    lv_style_set_radius(&style_main, LV_RADIUS_CIRCLE);
    lv_style_set_pad_ver(&style_main, 0); /*Makes the indicator larger*/

    lv_style_init(&style_indicator);
    lv_style_set_bg_opa(&style_indicator, LV_OPA_COVER);
    lv_style_set_bg_color(&style_indicator, lv_color_hex(0x43CF7C));
    lv_style_set_radius(&style_indicator, LV_RADIUS_CIRCLE);
    lv_style_set_transition(&style_indicator, &transition_dsc);

    lv_style_init(&style_knob);
    lv_style_set_bg_opa(&style_knob, LV_OPA_COVER);
    lv_style_set_bg_color(&style_knob, lv_color_hex(0xE5E5E5));
    lv_style_set_border_width(&style_knob, 0);
    //lv_style_set_border_color(&style_knob, lv_palette_darken(LV_PALETTE_CYAN, 3));
    lv_style_set_radius(&style_knob, LV_RADIUS_CIRCLE);
    lv_style_set_pad_all(&style_knob, 0); /*Makes the knob larger*/
    lv_style_set_transition(&style_knob, &transition_dsc);

    lv_style_init(&style_pressed_color);
    lv_style_set_bg_color(&style_pressed_color, lv_palette_darken(LV_PALETTE_CYAN, 2));

    /*Create a slider and add the style*/
    lv_obj_t* slider = lv_slider_create(lv_scr_act());
    lv_obj_remove_style_all(slider);        /*Remove the styles coming from the theme*/
    lv_obj_set_height(slider, 30);
    lv_obj_set_width(slider, 60);

    lv_obj_add_style(slider, &style_main, LV_PART_MAIN);
    lv_obj_add_style(slider, &style_indicator, LV_PART_INDICATOR);
    //lv_obj_add_style(slider, &style_pressed_color, LV_PART_INDICATOR | LV_STATE_PRESSED);
    lv_obj_add_style(slider, &style_knob, LV_PART_KNOB);
    //lv_obj_add_style(slider, &style_pressed_color, LV_PART_KNOB | LV_STATE_PRESSED);
    lv_obj_add_flag(slider, LV_OBJ_FLAG_ADV_HITTEST); //仅通过旋钮拖动

    lv_obj_center(slider);

    lv_obj_add_event(slider, slider_event_cb, LV_EVENT_RELEASED, NULL);
}

static void slider_event_cb(lv_event_t* e)
{
    lv_event_code_t code = lv_event_get_code(e);
    lv_obj_t* obj = (lv_obj_t*)lv_event_get_target(e);

    if (code == LV_EVENT_RELEASED)
    {
        if (lv_slider_get_value(obj) == 100)
        {

        }
        else if (lv_slider_get_value(obj) == 0)
        {

        }
        else {
            lv_slider_set_value(obj, 0, LV_ANIM_OFF);
        }

    }
}

Like iphone confirmation slider - #5 by juneofive this link will be helpfull