我已经使用JavaFX几天了,现在我在android上遇到了文本字段的问题。
我有一个非常基本的应用程序,只有一个文本字段。当我点击它来输入一些文字时,一切都很好
As you can see here
但是当我精简打字并点击其他项目时,UI卡住了。不显示动画。当我再次单击文本字段时,键盘出现没有问题,我可以键入,我可以听到在Android上键入的通常声音,但UI仍然卡住,视觉文本字段不会更改as you an see here。 / p>
当我关闭显示器并再次打开时,会发生魔术。之后,我可以看到我输入的所有内容都在TextField中。 UI未被卡住,我键入的文本正确显示。但是当我点击另一个按钮时,它会在第一时间断开。
此外,我尝试使用 javafx.scene.control 和 com.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")));
}
}
的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'
}
}
那么,问题是如何达到“屏幕关闭/开启”效果?我觉得它与失去焦点和更新UI有关,但我不确定 感谢你的时间。
我使用的是Android 4.1.1,java 8