Lvgl: Button action in list view not working

Created on 18 Oct 2018  路  4Comments  路  Source: lvgl/lvgl

Hi, at first I want to say GREAT job!

Really it is very nice library, very fast porting on STM32H7 nucleo and 3.5 inch display with ILI9488 controller.

Just noticed that in demo application, clicking on buttons in list don't give expected results. I tried in debug but not getting callback for button click. Also tried to change action to button press LV_BTN_ACTION_PR and that is working.

Also, one more info, when i work with buttons outside list, I regularly receive callback for LV_BTN_ACTION_CLICK.

Best regards, and once again great job!

Most helpful comment

Hi,
please be sure that your touch driver every time return old (last clcked) value. I had same problem and this help to me.

bool drvRead_Touch(lv_indev_data_t *data)
{
    static  uint16_t x=0xFFFF,y=0xFFFF;

    if(!GET_TOUCH_STATE())
    {
        x = drv_Touch_Get_Axis(X_channel);
        y = drv_Touch_Get_Axis(Y_channel);
        data->state = LV_INDEV_STATE_PR;
    }
    else
        data->state = LV_INDEV_STATE_REL;

    data->point.x = x;
    data->point.y = y;
    return false;           /*No buffering so no more data read*/
}

Hope that is also help to you .

All 4 comments

Hi,
please be sure that your touch driver every time return old (last clcked) value. I had same problem and this help to me.

bool drvRead_Touch(lv_indev_data_t *data)
{
    static  uint16_t x=0xFFFF,y=0xFFFF;

    if(!GET_TOUCH_STATE())
    {
        x = drv_Touch_Get_Axis(X_channel);
        y = drv_Touch_Get_Axis(Y_channel);
        data->state = LV_INDEV_STATE_PR;
    }
    else
        data->state = LV_INDEV_STATE_REL;

    data->point.x = x;
    data->point.y = y;
    return false;           /*No buffering so no more data read*/
}

Hope that is also help to you .

I will try tomorrow, thank you for response. Currently I do not return same value for x and y when press is released. I will write results. If this help maybe this notice should be in porting tutorial.

Great great great! Everything works as you suggested.
Thanks @TomasPech
@kisvegabor maybe this point should be in porting tutorial, lv_tutorial_porting.c in explanation for function

static bool ex_tp_read(lv_indev_data_t * data)`

Thank you once again for great work.

And, you can close this issue @kisvegabor

Glad to hear you figured out what was the issue.
I added a comment about it as you suggested: https://github.com/littlevgl/lv_examples/blob/master/lv_tutorial/0_porting/lv_tutorial_porting.c#L246

@TomasPech Thank you for sharing your experience! I edit your comment to add syntax highlighting. You can use:
```c
<code>
```

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mianhuacar picture mianhuacar  路  5Comments

MShahrukh0 picture MShahrukh0  路  6Comments

banshanju picture banshanju  路  3Comments

mharizanov picture mharizanov  路  4Comments

ashrafkamel5 picture ashrafkamel5  路  5Comments