2011-09-28 83 views
2

我想更改我的黑莓屏幕GUI当我从纵向转到横向模式时。如何更改方向更改时的布局

protected void sublayout(int width, int height) { 
    // TODO Auto-generated method stub 

    if(Display.getOrientation()==Display.DIRECTION_PORTRAIT) 
    { 
     label.setText("Portrait"); 
    } 
    else 
    { 
     label.setText("Landscape"); 
    } 

    super.sublayout(width, height); 
} 

任何帮助,将不胜感激

回答

2

覆盖屏幕上的sublayout,只要方向更改,就会调用此方法,以便您可以使用它来添加/删除/更改字段。

您也可以使用Display.getOrientation()来检查当前的方向。如果因为其他原因调用了sublayout,则还应该跟踪应用程序中的以前的方向。

+0

我已经做了这件事,看代码更新..但它给非法stateexception –

+0

尝试在设置文本之前在事件线程上同步。 http://www.youtube.com/watch?v=BiHZrkNIbXA&feature=player_embedded –

0

您需要手动处理。只要黑莓方向改变,它就会调用subLayout()方法。在那里你可以调用invalidate方法来刷新你的屏幕。但请确保您使用的是相对布局而不是绝对布局。它会自动将UI元素排列在屏幕上。

+0

你可以给一些源代码的例子吗? –

+0

我不熟悉BB中的setLayout是不是Android? –