私はJavaFXを数日間使用していましたが、Androidのテキストフィールドに問題があります。
テキスト フィールドが 1 つしかない非常に基本的なアプリケーションがあります。それをクリックしてテキストを入力すると、すべて問題ありません。
ここでわかるように
しかし、入力を終えて他の項目をクリックすると、UI がスタックします。アニメーションは表示されません。テキスト フィールドをもう一度クリックすると、問題なくキーボードが表示され、入力できます。Android での通常の入力音は聞こえますが、UI はまだスタックしており、ここに表示されているように視覚的にテキスト フィールドは変化していません。
ディスプレイをオフにして再度オンにすると、魔法が起こります。その後、入力したものはすべて 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を使用しています