2016-08-06 17 views
2

wir wollen Dialog-Nachricht in diesem Format und suchen und füllen enter image description hereCodenameone: Alarmdialognachricht

Können Sie bitte lassen Sie mich wissen, wie es zu lösen. Meine Anwendung muss auf allen Plattformen (Android, iOS, Windows) unterstützt werden und ich möchte nicht nativen Code für alle Plattformen separat schreiben.

Antwort

2

Eigentlich ist das Anpassen des Aussehens in Codename One einfacher, da alles in Java geschrieben ist, können Sie buchstäblich alles über das Aussehen von irgendetwas anpassen.

Der Einfachheit halber habe ich Code anstelle von Stilen verwendet, die besser wären, Sie können die Dialog UIID und andere UIIDs im Design Designer anpassen, um mehr Flexibilität zu erreichen und dies einfacher zu haben. Dies würde jedoch viele Screenshots und Erklärungen erfordern, damit ich die Anpassung in Code tat:

Form f = new Form("Test"); 
Button b = new Button("Show Dialog"); 
f.add(b); 
b.addActionListener(e -> { 
    Dialog dlg = new Dialog("Authentication"); 
    Style dlgStyle = dlg.getDialogStyle(); 
    dlgStyle.setBorder(Border.createEmpty()); 
    dlgStyle.setBgTransparency(255); 
    dlgStyle.setBgColor(0xffffff); 

    Label title = dlg.getTitleComponent(); 
    title.setIcon(finalDuke.scaledHeight(title.getPreferredH())); 
    title.getUnselectedStyle().setFgColor(0xff); 
    title.getUnselectedStyle().setAlignment(Component.LEFT); 

    dlg.setLayout(BoxLayout.y()); 
    Label blueLabel = new Label(); 
    blueLabel.setShowEvenIfBlank(true); 
    blueLabel.getUnselectedStyle().setBgColor(0xff); 
    blueLabel.getUnselectedStyle().setPadding(1, 1, 1, 1); 
    blueLabel.getUnselectedStyle().setPaddingUnit(Style.UNIT_TYPE_PIXELS); 
    dlg.add(blueLabel); 
    TextArea ta = new TextArea("This is the text you want to appear in the dialog, this might line break if the text is too long..."); 
    ta.setEditable(false); 
    ta.setUIID("DialogBody"); 
    ta.getAllStyles().setFgColor(0); 
    dlg.add(ta); 

    Label grayLabel = new Label(); 
    grayLabel.setShowEvenIfBlank(true); 
    grayLabel.getUnselectedStyle().setBgColor(0xcccccc); 
    grayLabel.getUnselectedStyle().setPadding(1, 1, 1, 1); 
    grayLabel.getUnselectedStyle().setPaddingUnit(Style.UNIT_TYPE_PIXELS); 
    dlg.add(grayLabel); 

    Button ok = new Button(new Command("OK")); 
    ok.getAllStyles().setBorder(Border.createEmpty()); 
    ok.getAllStyles().setFgColor(0); 
    dlg.add(ok); 
    dlg.showDialog(); 
}); 
f.show();  

enter image description here

Ich würde empfehlen, den Dialog Anpassung im Thema Designer tun und ein 9-teilige Bildrand verwendet, die ist besser aussehend.

+0

Wo sollte ich diesen Code in meinem Projekt anpassen. In StateMachine.java oder StateMachineBase.java oder anderswo? –

+1

Sie können diesen Code überall schreiben, um einen Dialog anzuzeigen. Sie können alle Dialoge so anpassen, dass sie z. wenn sie mit einem Android-Simulator-Skin laufen, sollten sie ziemlich ähnlich aussehen. Dies kommt vom nativen Android-Thema, das Sie im Verzeichnis themes in unserem github-Repository herunterladen können. –

Verwandte Themen