Keypad and Keyboard

Overview

Full keyboards with all the letters or simple keypads with a few navigation buttons belong in the Keypad category.

You can fully control the user interface without a touchpad or mouse by using only a keypad. It works similarly to the TAB key on a PC to select an element in an application or web page.

Only widgets added to a group can be selected by a keyboard. Learn more at Groups.

Example

/*Create a group and add widgets to it so they can be selected by the keypad*/
lv_group_t * g = lv_group_create();

lv_indev_t * indev = lv_indev_create();
lv_indev_set_type(indev, LV_INDEV_TYPE_KEYPAD);
lv_indev_set_read_cb(indev, keyboard_read);
lv_indev_set_group(indev, g);

...

void keyboard_read(lv_indev_t * indev, lv_indev_data_t * data) {
  if(key_pressed()) {
     data->key = my_last_key();            /* Get the last pressed or released key */
     data->state = LV_INDEV_STATE_PRESSED;
  } else {
     data->state = LV_INDEV_STATE_RELEASED;
  }
}

Keys

There are some predefined keys which have special meaning:

The most important special keys in your read_cb() function are:

You should translate some of the read keys to these special keys to support navigation in a group and interact with selected widgets.