2011-09-28 59 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? –