当屏幕方向改变时,我该如何更改布局?

3

我想更改黑莓屏幕的图形用户界面,以便在从竖屏模式切换到横屏模式时进行更改。

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个回答

2

当屏幕方向变化时,您需要覆盖屏幕上的 sublayout 方法,以便添加/删除/更改字段。

您还可以使用 Display.getOrientation() 检查当前方向。在您的应用程序中,您还应跟踪先前的方向,以防 sublayout 是由于其他原因调用的。


我已经做了这件事情,请看代码更新...但是它会产生illegalstateexception异常。 - Dhaval Khant
在设置文本之前,请尝试在事件线程上同步。http://www.youtube.com/watch?v=BiHZrkNIbXA&feature=player_embedded - Ray Vahey

0

你需要手动处理它。每当 Blackberry 设备的方向发生变化,它都会调用 subLayout() 方法。在那里,你可以调用 invalidate 方法来刷新你的屏幕。但请确保使用相对布局而不是绝对布局。它会自动排列屏幕上的 UI 元素。


我不熟悉 BB 中的 setLayout,那不是 Android 吗? - Ray Vahey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接