2016-08-06 3 views
2

мы хотим диалоговое сообщение в этом формате и смотреть и заполнить enter image description hereCodenameone: Предупреждение Dialog сообщение

Можете ли вы, пожалуйста, дайте мне знать, как решить ее. Мое приложение должно поддерживаться на всех платформах (Android, iOS, Windows), и я не хочу писать собственный код для всех платформ отдельно.

ответ

2

На самом деле настроить Codename проще, так как все написано на Java, вы можете буквально буквально изменить внешний вид.

Для простоты я использовал код, а не стили, которые были бы лучше, вы можете настроить UIID Dialog в дизайнере темы, чтобы получить большую гибкость и сделать это проще. Однако, для этого потребуется много скриншотов и объяснения, так что я сделал настройки в коде:

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

Я бы рекомендовал делать диалоговую настройку в тему дизайнере и использование границы изображения в 9-куске, который выглядящий лучше.

+0

где я должен добавить этот код для настройки в свой проект. В StateMachine.java или StateMachineBase.java или где-нибудь еще? –

+1

Вы можете написать этот код в любом месте, чтобы показать диалог. Вы можете настроить все диалоги, чтобы выглядеть так, например. при работе с кожей симулятора Android они должны выглядеть довольно похоже на это. Это происходит из родной темы Android, которую вы можете скачать из каталога Themes в нашем репозитории github. –

Смежные вопросы