JavaFX TextField Android застрял

Я уже пару дней использую JavaFX, и теперь у меня проблема с текстовым полем на Android.
У меня есть очень простое приложение с одним текстовым полем. Когда я нажимаю на него, чтобы ввести текст, все в порядке.
Как вы можете видеть здесь

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

Волшебство происходит, когда я выключаю дисплей и снова включаю его. После этого я вижу, что все, что я набрал, находится внутри TextField. Пользовательский интерфейс не застрял, и текст, который я печатаю, отображается правильно. Но когда я нажимаю на другую кнопку, она ломается, как в первый раз.

Кроме того, я попытался использовать TextField из javafx.scene.control и com.gluonhq.charm.glisten.control, и они оба не работают.

Код, который я использую:
BasicView.java

package com.gluonapplication;

import com.gluonhq.charm.glisten.control.AppBar;
import com.gluonhq.charm.glisten.mvc.View;
import com.gluonhq.charm.glisten.visual.MaterialDesignIcon;
import com.gluonhq.charm.glisten.control.TextField;

public class BasicView extends View
{
    TextField field;

    public BasicView(String name)
    {
        super(name);

        field = new TextField();
        setTop(field);
    }

    @Override
    protected void updateAppBar(AppBar appBar)
    {
        appBar.setTitleText("Basic View");
        appBar.getActionItems().add(MaterialDesignIcon.SEARCH.button(e -> System.out.println("Search")));
    }
}

GluonApplication.java

package com.gluonapplication;

import com.gluonhq.charm.glisten.application.MobileApplication;
import com.gluonhq.charm.glisten.visual.Swatch;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

public class GluonApplication extends MobileApplication
{
    public static final String BASIC_VIEW = HOME_VIEW;

    @Override
    public void init()
    {
        addViewFactory(BASIC_VIEW, () -> new BasicView(BASIC_VIEW));
    }

    @Override
    public void postInit(Scene scene) {
        Swatch.BLUE.assignTo(scene);
        ((Stage) scene.getWindow()).getIcons().add(new Image(GluonApplication.class.getResourceAsStream("/icon.png")));
    }
}

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.0.9'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.gluonapplication.GluonApplication'

dependencies {
    compile 'com.gluonhq:charm:3.0.0'

    androidRuntime 'com.gluonhq:charm-android:3.0.0'
    iosRuntime 'com.gluonhq:charm-ios:3.0.0'
    desktopRuntime 'com.gluonhq:charm-desktop:3.0.0'
}

jfxmobile {
    android {
        manifest = 'src/android/AndroidManifest.xml'
        androidSdk = 'D:\\AMAZING_THINGS\\AndroidSdk'
        compileSdkVersion = '16'
    }
}

Итак, вопрос в том, как достичь эффекта "выключение / включение экрана"? Я чувствую, что это связано с потерей фокуса и обновлением интерфейса, но я не уверен.
Спасибо за ваше время.

Я использую Android 4.1.1, Java 8

0 ответов

Другие вопросы по тегам