Question

I'm building a nokia s40 app. I've set this app to be in full screen mode and I notice that when I set this full screen mode, I've lost the native back buttons.

I need to build a back button like the native back button (always on screen, in the bottom right side of the screen). I've tried it with a borderlayout and putting it on the south, but the text from the center container doesn't appears over this...and has transparent background.

If anyone has some sample code, it will be great.

Was it helpful?

Solution

this code simply located a button in the bottom right side of the screen. it's work well.

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();   
}

you can do like this to any form. if you want back Button is showed in all forms you can write some OOP programming to do this. it works well.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top