gpt4 book ai didi

java - 如何在同一表单上正确使用 Picker 和 BrowserComponent?

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:54 25 4
gpt4 key购买 nike

我需要在同一个表单上使用 PickerBrowserComponent

选择器将允许用户选择一个值,用于生成将由BrowserComponent显示的 HTML。

以下代码在 Android 上运行良好。

在 iOS 上,使用 Picker 选择一个值后,一切都变得一团糟:选择器仍然绘制在屏幕上,BrowserComponent 为空并且应用程序挂起!?

代号一号中的错误?

该问题在 iOS 10、10.3.3 和 12.1 上可重现

package edu.ch.emf.praesto;

import static com.codename1.ui.CN.*;
import com.codename1.ui.Display;
import com.codename1.ui.Form;
import com.codename1.ui.Dialog;
import com.codename1.ui.plaf.UIManager;
import com.codename1.ui.util.Resources;
import com.codename1.ui.BrowserComponent;
import com.codename1.ui.CN1Constants;
import com.codename1.ui.layouts.BorderLayout;
import com.codename1.ui.spinner.Picker;

public class App {

private Form currentForm;
private Resources theme;

public void init(Object context) {
// Loading the theme
this.theme = UIManager.initFirstTheme("/theme");
}

public void start() {

// Load last shown form on reopening
if (this.currentForm != null) {
this.currentForm.show();
return;
}

// Force orientation locking if the plattform supports it
if (Display.getInstance().canForceOrientation()) {
Display.getInstance().lockOrientation(true);
}

Form form = new Form(new BorderLayout());

String[] strs = new String[]{"Option 1", "Option 2", "Option 3"};

Picker picker = new Picker();
picker.setType(CN1Constants.PICKER_TYPE_STRINGS);
picker.setStrings(strs);
form.add(BorderLayout.NORTH, picker);

BrowserComponent htmlViewer = new BrowserComponent();
htmlViewer.setPage("<html><head></head><body><h1>Test</h1></body></html>", null);
form.add(BorderLayout.CENTER, htmlViewer);

form.show();
}

public void stop() {
this.currentForm = getCurrentForm();
if (this.currentForm instanceof Dialog) {
((Dialog) this.currentForm).dispose();
this.currentForm = getCurrentForm();
}
}

public void destroy() {
}
}

最佳答案

使用Picker.setDefaultUseLightweightPopup(true)强制选择器使用Java呈现的实现而不是iOS的片状实现。

不幸的是,这可能会使 Android 上的选择器表现得像 iOS 选择器,这并不适合所有情况。所以你可以尝试将 Android 排除在这个逻辑之外。

关于java - 如何在同一表单上正确使用 Picker 和 BrowserComponent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53869005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com