0

我正在构建一个诺基亚 s40 应用程序。我已将此应用程序设置为全屏模式,并且我注意到当我设置此全屏模式时,我失去了本机后退按钮。

我需要构建一个后退按钮,如本机后退按钮(始终在屏幕上,在屏幕的右下方)。我已经尝试过使用边框布局并将其放在南边,但是来自中心容器的文本不会出现在这个上面......并且具有透明背景。

如果有人有一些示例代码,那就太好了。

4

1 回答 1

1

此代码只是位于屏幕右下方的一个按钮。它运作良好。

public void startApp() {
    Display.init(this);
    Form f = new Form();
    //Create a ComponentGroup for all components except backbutton
    final ComponentGroup cg = new ComponentGroup();
    final Button backButton = new Button("BackButton");
    // add this part to your code
    f.addOrientationListener(new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            Dimension d = new Dimension(Display.getInstance().getDisplayWidth(),  Display.getInstance().getDisplayHeight());
            cg.setPreferredSize(d);
            backButton.setX(Display.getInstance().getDisplayWidth() - backButton.getPreferredW());
        }
    });
    //set CoordinateLayout to f
    f.setLayout(new CoordinateLayout(Display.getInstance().getDisplayWidth(), Display.getInstance().getDisplayHeight()));


    //Dimension d = new Dimension(Display.getInstance().getDisplayWidth(), Display.getInstance().getDisplayHeight());
    cg.setPreferredH(Display.getInstance().getDisplayHeight());
    cg.setPreferredW(Display.getInstance().getDisplayWidth());
    cg.setLayout(new BorderLayout());
    cg.addComponent(BorderLayout.NORTH, new Button("NORTH"));
    cg.addComponent(BorderLayout.EAST, new Button("ESET"));
    cg.addComponent(BorderLayout.WEST, new Button("WEST"));
    cg.addComponent(BorderLayout.CENTER, new TextArea("sdsdsd"));

    cg.setX(0);
    cg.setY(0);
    backButton.getStyle().setBgColor(0x2233ff);

    backButton.setX(Display.getInstance().getDisplayWidth() - backButton.getPreferredW());
    backButton.setY(Display.getInstance().getDisplayHeight() - backButton.getPreferredH() - f.getTitleArea().getLayoutHeight());
    f.addComponent(cg);
    f.addComponent(backButton);
    f.show();   
}

你可以对任何形式这样做。如果您想以所有形式显示返回按钮,您可以编写一些 OOP 编程来执行此操作。它运作良好。

于 2013-08-20T19:05:14.567 回答