0

我已经使用 JavaFX 几天了,现在我在 android 上的文本字段出现问题。
我有一个非常基本的应用程序,只有一个文本字段。当我单击它输入一些文本时,一切都很好。
正如你在这里看到的

但是当我细化打字并单击其他项目时,UI 卡住了。不显示动画。当我再次单击文本字段时,键盘出现没有问题,我可以打字,我可以听到在 android 上打字的通常声音,但 UI 仍然卡住并且视觉上文本字段没有改变,如您在此处看到的那样

当我关闭显示器并再次打开它时,魔法就会发生。之后我可以看到我输入的所有内容都在 TextField 中。UI 没有卡住,我输入的文本正确显示。但是,当我单击另一个按钮时,它会像第一次一样中断。

此外,我尝试使用javafx.scene.controlcom.gluonhq.charm.glisten.control中的 TextField ,但它们都不起作用。

我正在使用的代码:
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")));
    }
}

构建.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'
    }
}

那么,问题是如何达到“屏幕关闭/打开”的效果?我觉得它与失去焦点和更新 UI 有关,但我不确定。
谢谢你的时间。

我正在使用 Android 4.1.1,Java 8

4

0 回答 0