平铺组件

1. TLV组件介绍

TLV 组件框架是一套动态可裁剪的组件管理机制,实现对消息模块堆叠功能快捷栏侧边导航栏等核心组件的高效管理, 旨在提升配置管理效率与项目适配灵活性。通过统一的标准化接口,实现对各类核心组件的高效管理,使系统能够根据项目需求灵活增减组件配置,显著增强系统的可扩展性与适配能力,满足不同项目场景的多样化需求。

2. TLV组件框架

TLV组件框架已在 solution\framework\gui_fwk\tlv_fwk.c 实现,主要接口及说明如下:

2.1 组件状态管理

  1. 组件状态:用于状态机转换,状态改变需遵循指定的状态机规则(与平铺状态机一致)

enum
{
    TLV_STATE_STARTED,          /**< 启动tileview应用 */
    TLV_STATE_RESUMED,          /**< 激活tileview应用 */
    TLV_STATE_PAUSED,           /**< 暂停tileview应用 */
    TLV_STATE_STOPED,           /**< 销毁tileview应用 */
};
  1. 状态机切换函数

int tlv_comp_change_state(const char *id, lv_obj_t *parent, tlv_state_t state);
  • 功能:切换指定组件的状态

  • 参数:

    • id:组件唯一标识符

    • parent:父级对象

    • state:目标状态

2.2 组件注册机制

// 组件启动时调用
static void on_start(void *param)
{
    p_notify = (notification_t *)app_calloc(1, sizeof(notification_t));
    RT_ASSERT(p_notify);

    p_notify->parent = TLV_COMP_GET_PARENT;
}

// 组件恢复时调用
static void on_resume(void *param)
{
    // 恢复组件显示和交互
}

// 组件暂停时调用
static void on_pause(void *param)
{
    // 暂停组件活动
}

// 组件停止时调用
static void on_stop(void *param)
{
    // 释放资源
    p_notify = NULL;
}

// 注册组件到TLV框架
TLV_COMPONENT_REGISTER(notify);

3. 内置TLV组件

TLV 组件框架已适配以下核心组件,项目可根据需求进行个性化配置,不需要的组件可直接删除相应目录或移除宏配置:

3.1 消息模块

功能:提供系统消息通知功能

fishy

3.2 堆叠功能

功能:实现组件的层叠显示与管理

fishy

3.3 快捷栏

功能:提供快速访问常用功能的界面

fishy

3.4 侧边导航栏

功能:实现侧边式导航菜单,提供主要功能入口

fishy

4. 组件使用与配置建议

  • 组件裁剪:不需要的组件可直接删除对应目录或通过宏定义#undef移除

  • 状态管理:组件状态切换应遵循状态机规则,避免非法状态转换

  • 个性化适配:可基于现有组件进行二次开发,通过重写生命周期函数实现定制化需求

  • 资源管理:在on_stop回调中确保释放所有已分配资源,避免内存泄漏

通过以上机制,TLV 组件框架能够高效管理各类 UI 组件,为不同项目场景提供灵活的适配能力。