BlackBerry开发实现类似Lwuit的Tabbed Pane效果

移动开发
本文向大家介绍一下Black Berry开发实现类似Lwuit的Tabbed Pane效果,Lwuit虽然有Black Berry的版本,但是对其源代码进行分析过后才发现并不能直接应用于实际项目中。

本文和大家重点学习一下Black Berry开发实现类似Lwuit的Tabbed Pane效果,Lwuit虽然有Black Berry的版本,它将所有版本的包括QWERTY、suretype、touch等的不同系统版本混合到一起,给裁剪带来很大难度。

BlackBerry开发实现类似Lwuit的TabbedPane效果

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

两种实现方法:

1、使用屏幕Screen切换;

2、使用Graphics封装。

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

◆实现一:使用屏幕Screen切换

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

***个屏幕中的代码: 

  1. viewplaincopytoclipboardprint?  
  2. /*  
  3. *滚轮滚动事件响应  
  4. *滚轮动作:向上dy=-1,向下dy=1,向左dx=-1,向右dx=1 
  5. *@seenet.rim.device.api.ui.Screen#navigationMovement(int,int,int,int)  
  6. */  
  7. protectedbooleannavigationMovement(intdx,intdy,intstatus,inttime){  
  8. //Dialog.alert("TrackBallmoved:\r\n"+"x:"+dx+"\r\ny:"+dy);  
  9. if(dx>0&&this.isDisplayed()){  
  10. SillyDowntheApp=(SillyDown)this.getApplication();  
  11. theApp.popScreen(theApp.getFirstScreen());  
  12. returntrue;  
  13. }  
  14. returnfalse;  
  15. }  
  16. /*  
  17. *滚轮滚动事件响应  
  18. *滚轮动作:向上dy=-1,向下dy=1,向左dx=-1,向右dx=1 
  19. *@seenet.rim.device.api.ui.Screen#navigationMovement(int,int,int,int)  
  20. */  
  21. protectedbooleannavigationMovement(intdx,intdy,intstatus,inttime){  
  22. // Dialog.alert("TrackBallmoved:\r\n"+"x:"+dx+"\r\ny:"+dy);  
  23.  if(dx>0&&this.isDisplayed()){  
  24.   SillyDowntheApp=(SillyDown)this.getApplication();  
  25.   theApp.popScreen(theApp.getFirstScreen());  
  26.   returntrue;  
  27.   }  
  28.  returnfalse;  
  29.  }  
  30.  
  31. 第二个屏幕中的代码:  
  32.  
  33. viewplaincopytoclipboardprint?  
  34. /*  
  35. *滚轮滚动事件响应  
  36. *滚轮动作:向上dy=-1,向下dy=1,向左dx=-1,向右dx=1 
  37. *@seenet.rim.device.api.ui.Screen#navigationMovement(int,int,int,int)  
  38. */  
  39. protectedbooleannavigationMovement(intdx,intdy,intstatus,inttime){  
  40. //TODOAuto-generatedmethodstub  
  41. if(dx<0&&this.isDisplayed()){  
  42. SillyDowntheApp=(SillyDown)this.getApplication();  
  43. theApp.pushScreen(theApp.getFirstScreen());  
  44. returntrue;  
  45. }  
  46. returnfalse;  
  47. }  
  48. /*  
  49. *滚轮滚动事件响应  
  50. *滚轮动作:向上dy=-1,向下dy=1,向左dx=-1,向右dx=1 
  51. *@seenet.rim.device.api.ui.Screen#navigationMovement(int,int,int,int)  
  52. */  
  53. protectedbooleannavigationMovement(intdx,intdy,intstatus,inttime){  
  54.  //TODOAuto-generatedmethodstub  
  55.  if(dx<0&&this.isDisplayed()){  
  56.   SillyDowntheApp=(SillyDown)this.getApplication();  
  57.   theApp.pushScreen(theApp.getFirstScreen());  
  58.   returntrue;  
  59.  }  
  60.  returnfalse;  
  61. }  

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

◆实现二:使用Graphics封装

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

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

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

【编辑推荐】

  1. BlackBerry开发中Windows+eclipse环境配置及Helloworld
  2. 九步实现BlackBerry开发程序发布应用到app world
  3. BlackBerry开发中七步实现创建app world账号
  4. BlackBerry开发环境中javaloader使用详解
  5. 黑莓开发中黑莓手机程序访问网络能走代理服务器的三种方式

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-06-12 16:29:00

BlackBerry开

2010-05-22 16:57:09

BlackBerry开

2010-06-22 16:19:01

Black Berry

2011-05-03 15:13:23

BlackBerryWidget

2010-08-20 13:47:11

BlackBerry应BlackBerry

2011-05-03 16:41:04

BlackBerry

2011-05-03 15:28:15

BlackBerryWidget

2010-06-12 16:41:10

BlackBerry开

2022-01-02 07:11:19

Windows 11操作系统微软

2011-01-27 17:33:10

DalvikAndroidQNX

2010-07-02 15:48:48

BlackBerry开

2011-04-18 11:00:34

使用音频BlackBerry

2010-07-22 15:33:36

BlackBerry开

2012-10-08 10:27:56

jQueryJSJavaScript

2010-07-02 15:58:35

BlackBerry开

2010-07-22 15:22:58

BlackBerry开

2010-04-02 17:45:22

Black Berry

2011-03-31 13:15:18

BlackBerry

2012-01-09 09:22:37

BlackBerry

2010-04-22 17:34:25

点赞
收藏

51CTO技术栈公众号