Использование цифровой клавиатуры из мобильного приложения Gluon - PullRequest
0 голосов
/ 10 июня 2019

В Android, чтобы клавиатура была только числовой, вам нужно только установить inputType как number.В Javafx вы должны убедиться, что у вас установлены правильные свойства, в данном случае

System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");

, а затем вы установили textfield.getProperties().put("vkType", "numeric");

Это вообще не работает для меня.Я попытался добавить его в Gradle сборку, которая не работала.

Я попытался добавить его в метод init, как показано ниже.

@Override
public void init() {
    System.setProperty("com.sun.javafx.isEmbedded", "true");
    System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");
    addViewFactory(HOME_SCREEN_VIEW, () -> new HomeView().getView());
    addViewFactory(STATION_LIST_VIEW, () -> new StationListView().getView());
    addViewFactory(STATION_VIEW, () -> new StationView().getView());
    addViewFactory(CHOOSE_FLIGHT_VIEW, () -> new ChooseFlightView().getView());
    addViewFactory(SETTINGS_VIEW, () -> new SettingsView().getView());
    addViewFactory(LOGIN_VIEW, () -> new LoginView().getView());
    addViewFactory(EDIT_PREF_VIEW, () -> new EditingPrefView().getView());
    addViewFactory(SPLASH_VIEW,() -> new SplashView().getView());
    addViewFactory(OVERLOAD_VIEW, () -> new OverloadView().getView());
    addViewFactory(ADDUSER_VIEW, () -> new AddUserView().getView());
}

Это также сделалоне работа.Я заглянул в .apk и нашел файл javafx.platform.properties., в котором есть android.com.sun.javafx.isEmbedded=true.Если я изменю свойства, добавляемые в android., он все равно не будет работать.

Как я могу заставить эту работу работать?Я использую обычный JavaFx TextField, а не Gluon TextField.

Если это вообще возможно, я бы на самом деле предпочел бы использовать встроенную цифровую клавиатуру Android, но я также не нашел никакого способа сделать это.

Спасибо за помощь.

1 Ответ

0 голосов
/ 21 июня 2019

В настоящее время я работаю над приложением Gluon для Android.Мое решение не идеальное, но вот как я его обвел!Я создал GridPane, как только текстовое поле было нажато.например textField.setOnMouseClicked(event -> { numericKeypad(); });, и мой метод numericKeypad содержит сетку с кнопками (с числовым текстом на нем) и стилями сетки и кнопок.в конце метода я использовал этот view.setBottom(gridPane);, который устанавливает основание для клавиатуры, когда вы нажимаете на текстовое поле!и после того, как они закончили редактирование, я установил view.setBottom(null); так, чтобы это давало ощущение клавиатуры, щелкающей снизу как обычная клавиатура.Как я уже сказал, это не идеально или то, что вы ищете, но я надеюсь, что это поможет!

...