BlackBerry实现类似Lwuit的Tabbed Pane效果

来源:互联网 发布:linux rar压缩命令 编辑:程序博客网 时间:2024/05/09 18:51

Lwuit虽然有BlackBerry的版本,但是对其源代码进行分析过后才发现并不能直接应用于实际项目中,它将所有版本的包括QWERTY、suretype、touch等的不同系统版本混合到一起,给裁剪带来很大难度。目前对其设计结构并不十分明确,所以源代码的裁剪过程比较混乱。虽然blackberry UI不提供类似Lwuit的分页效果,但是我们可以利用现有的API简单的模仿。等一些目前棘手的问题解决后,再慢慢研究吧。。。

 

两种实现方法:

1、使用屏幕Screen切换;

2、使用Graphics封装。

 

这两种方法都要用到滚轮的navigationMovement()事件响应函数,所以必须在需要切换的屏幕中重写这个事件。

 

实现一:使用屏幕Screen切换

 

思路:在UiApplication的构造函数中先将这两个屏幕压入堆栈。然后创建两个Sreen,在每个Screen中重写navigationMovement()方法。在navigationMovement()中获取UiApplication的对象,然后调用UiApplication.pushScreen()将另外一个界面压入堆栈。在另外一个界面中,调用UiApplication.popScreen()将自身弹出堆栈。

 

第一个屏幕中的代码:

 

第二个屏幕中的代码:

 

点评:这种实现方式比较简单,但是效果一般。

 

实现二: 使用Graphics封装

 

思路:使用Graphics封装一个LabelField,然后在navigationMovement()方法中重绘每个Field。

 

代码:(正在编写中,先做个标记)

 

点评:可以使用这种方法封装一个Tabbed Pane,界面颜色、宽度、高度、字体等都可以自行设置,界面比较华丽,但是代码比较复杂。