读书笔记

4.1.7 基于“传统symbian os控件体系结构”的多视图管理

AppUi提供多个Container之间的创建,清除,显示或隐藏。因为AppUi负责管理控件栈,处于栈顶的会显示的屏幕上,并处理系统按键事件。

iContainer1 = new(ELeave) Container1;

iContainer1->SetMopParent(this);

iContainer1->ConstuctL(ClientRect());

AddToStackL(iContainer1);

切换到iContainer2同样道理,只是最后AddToStackL(iContainer2);

此为管理应用程序用户界面最灵活的方法。没有使用系统提供的视图管理系统,需要自己负责视图创建,清除,隐藏或显示,此为其缺点,也为其优点。

 

4.1.8 基于“视图体系结构”的多视图管理

“视图体系结构”提供的“视图管理系统”,可用一个view管理多个container,也可以一个view管理一个container.一个view管理多个Container是通过Coecontrol接口里提供的接口实现

void RepotEventL(MCoeControlObserver::TCoeEvent aEvent);

eg:

用户定义如下消息ID

enum MenuCmd

{

ECmdDeleteVideoContainer,

EMenuItemCmdPayment,

EMenuBarCmdPaymentCancel

};

然后再Container需要切换视图的地方使用如下代码

ReportEventL(MCoeControlObserver::TCoeEvent)ECmdDeleteVideoContainer);

然后view进行具体的视图的创建清除显示或隐藏

void HandleControlEvent(CCoeControl* aControl, TCoeEvent aEventType)

{

if(aEventType == ECmdDeleteVideoContainer)

{

.....

}

 

}

 

 

以上内容全为摘抄书籍内容

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值