iOS 选择器出现在 sheet 后面
iOS picker appears behind the sheet
On iOS 设备和模拟器,如果选择器是从 sheet window 中选择的,则选择器选项出现在 sheet 后面。
Sheet sheet = new Sheet(null, "My Sheet");
sheet.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
Picker p_fromDate = new Picker();
p_fromDate.setType(PICKER_TYPE_DATE);
sheet.add(p_fromDate);
sheet.show();
我也已将此添加到 github 个问题 https://github.com/codenameone/CodenameOne/issues/3588
同时有没有简单的解决方法?虚拟键盘不会受到这种影响,因为我希望尽可能保留选择器。
TL;DR:我建议修改 UI 以避免在 Sheet
.
中提示输入
不幸的是,Picker
轻量级模式是 Dialog
,它只是显示在当前 Form
之上。 Sheet
位于当前 Form
上方的窗格中,完全是一个单独的交互。它们不兼容。
我不认为这是我们可以改变的(至少不容易)。除了破坏兼容性(这是我们可以解决的问题)之外,主要问题是解决这个问题。
分层窗格有秩序。所以一个 Sheet
在一层。这就说得通了。在您的情况下,您想要 Picker
下面的 Sheet
,但是如果我们创建一个 Picker
,然后在其之上显示一个 sheet,这将是一个问题。我们没有灵活的方式来操纵它。
您只能在 iOS 上看到此内容,因为 Android 本机选择器是始终位于所有内容之上的本机小部件。
O
Sheet sheet = new Sheet(null, "My Sheet");
sheet.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
Picker p_fromDate = new Picker();
p_fromDate.setType(PICKER_TYPE_DATE);
sheet.add(p_fromDate);
sheet.show();
我也已将此添加到 github 个问题 https://github.com/codenameone/CodenameOne/issues/3588
同时有没有简单的解决方法?虚拟键盘不会受到这种影响,因为我希望尽可能保留选择器。
TL;DR:我建议修改 UI 以避免在 Sheet
.
不幸的是,Picker
轻量级模式是 Dialog
,它只是显示在当前 Form
之上。 Sheet
位于当前 Form
上方的窗格中,完全是一个单独的交互。它们不兼容。
我不认为这是我们可以改变的(至少不容易)。除了破坏兼容性(这是我们可以解决的问题)之外,主要问题是解决这个问题。
分层窗格有秩序。所以一个 Sheet
在一层。这就说得通了。在您的情况下,您想要 Picker
下面的 Sheet
,但是如果我们创建一个 Picker
,然后在其之上显示一个 sheet,这将是一个问题。我们没有灵活的方式来操纵它。
您只能在 iOS 上看到此内容,因为 Android 本机选择器是始终位于所有内容之上的本机小部件。