0

私はJavaFXを数日間使用していましたが、Androidのテキストフィールドに問題があります。
テキスト フィールドが 1 つしかない非常に基本的なアプリケーションがあります。それをクリックしてテキストを入力すると、すべて問題ありません。
ここでわかるように

しかし、入力を終えて他の項目をクリックすると、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")));
    }
}

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を使用しています

4

0 に答える 0