平铺组件¶
1. TLV组件介绍¶
TLV 组件框架是一套动态可裁剪的组件管理机制,实现对消息模块、堆叠功能、快捷栏及侧边导航栏等核心组件的高效管理, 旨在提升配置管理效率与项目适配灵活性。通过统一的标准化接口,实现对各类核心组件的高效管理,使系统能够根据项目需求灵活增减组件配置,显著增强系统的可扩展性与适配能力,满足不同项目场景的多样化需求。
2. TLV组件框架¶
TLV组件框架已在 solution\framework\gui_fwk\tlv_fwk.c 实现,主要接口及说明如下:
2.1 组件状态管理¶
组件状态:用于状态机转换,状态改变需遵循指定的状态机规则(与平铺状态机一致)
enum
{
TLV_STATE_STARTED, /**< 启动tileview应用 */
TLV_STATE_RESUMED, /**< 激活tileview应用 */
TLV_STATE_PAUSED, /**< 暂停tileview应用 */
TLV_STATE_STOPED, /**< 销毁tileview应用 */
};
状态机切换函数
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 消息模块¶
功能:提供系统消息通知功能
3.2 堆叠功能¶
功能:实现组件的层叠显示与管理
3.3 快捷栏¶
功能:提供快速访问常用功能的界面
3.4 侧边导航栏¶
功能:实现侧边式导航菜单,提供主要功能入口
4. 组件使用与配置建议¶
组件裁剪:不需要的组件可直接删除对应目录或通过宏定义#undef移除
状态管理:组件状态切换应遵循状态机规则,避免非法状态转换
个性化适配:可基于现有组件进行二次开发,通过重写生命周期函数实现定制化需求
资源管理:在on_stop回调中确保释放所有已分配资源,避免内存泄漏
通过以上机制,TLV 组件框架能够高效管理各类 UI 组件,为不同项目场景提供灵活的适配能力。