popupDialog 样式中的问题
Problems in the styling of a popupDialog
我广泛使用 Dialog 的 showPopupDialog(...)
功能,它工作正常。我记得以前在Android上不行或者在Android上有问题,但是现在在Android.
上可以很好用了
但是 Android 我的样式有问题。基本上我希望在对话框中间显示一个组件。这是最简单的情况,有时我会在南侧添加按钮。然而,在这两种情况下,我只能将对话框弹出窗口的内容准确地放在 iOS 的中心,而在 Android 则存在问题。
这是我现在的 CSS:
@media platform-and {
PopupContentPane {
margin: 0px;
padding: 1.5mm;
padding-bottom: 3.0mm;
}
}
@media platform-ios {
PopupContentPane {
margin: 0px;
padding: 1.5mm;
padding-top: 0px;
}
}
iOS 和 Android 之间的主要区别在于,虽然 iOS 可以正确地使用此 CSS 无论箭头是向上还是向下,在 Android,要获得与 iOS 相同的结果,我需要一个 CSS 像这样制作:
@media platform-and {
PopupContentPane-ArrowTop {
margin: 0px;
padding: 1.5mm;
}
PopupContentPane-ArrowBottom {
margin: 0px;
padding: 1.5mm;
padding-bottom: 3.0mm;
}
}
或类似的东西(再做一些调整)。
因此,在 Android 上,当箭头位于底部时,我需要一个额外的填充底部。仅此而已,但这是不可能的,因为当前没有 PopupContentPane 的 UUID 当箭头在顶部时没有 UUID,当箭头在底部时没有另一个 UUID。
有什么想法或解决方法吗?谢谢
(我补充说,到目前为止,这是我唯一需要使用 CSS 的 @media 标签来区分 iOS 样式和 Android 的情况样式。)
最初,当我们编写弹出对话框时,它是 iOS 唯一的功能,因为样式仅在 iOS 上。我们使用 9 片图像边框来做弹出窗口,我们不想在每个原生主题中复制该主题元素,所以我们将其留给了开发人员。
后来我们想出了在 RoundRectBorder
上显示箭头的功能。另一个优势是 iOS/Android 转向扁平化设计,将之前复杂的对话框样式变成了简单的纯白色弹出窗口。所以我们白白实现了这个跨平台。但是因为 iOS 有 pre-existing 图像边框,它仍然在 iOS 上使用并且没有被删除。我们可能应该删除它并处理出现的小兼容性问题。
我最近在 InteractionDialog
中致力于此:https://github.com/codenameone/CodenameOne/blob/master/CodenameOne/src/com/codename1/components/InteractionDialog.java#L786-L815
为 Dialog
做类似的事情可能有意义,它似乎在任何地方都没有该代码:https://github.com/codenameone/CodenameOne/blob/master/CodenameOne/src/com/codename1/ui/Dialog.java#L1209
我广泛使用 Dialog 的 showPopupDialog(...)
功能,它工作正常。我记得以前在Android上不行或者在Android上有问题,但是现在在Android.
但是 Android 我的样式有问题。基本上我希望在对话框中间显示一个组件。这是最简单的情况,有时我会在南侧添加按钮。然而,在这两种情况下,我只能将对话框弹出窗口的内容准确地放在 iOS 的中心,而在 Android 则存在问题。
这是我现在的 CSS:
@media platform-and {
PopupContentPane {
margin: 0px;
padding: 1.5mm;
padding-bottom: 3.0mm;
}
}
@media platform-ios {
PopupContentPane {
margin: 0px;
padding: 1.5mm;
padding-top: 0px;
}
}
iOS 和 Android 之间的主要区别在于,虽然 iOS 可以正确地使用此 CSS 无论箭头是向上还是向下,在 Android,要获得与 iOS 相同的结果,我需要一个 CSS 像这样制作:
@media platform-and {
PopupContentPane-ArrowTop {
margin: 0px;
padding: 1.5mm;
}
PopupContentPane-ArrowBottom {
margin: 0px;
padding: 1.5mm;
padding-bottom: 3.0mm;
}
}
或类似的东西(再做一些调整)。
因此,在 Android 上,当箭头位于底部时,我需要一个额外的填充底部。仅此而已,但这是不可能的,因为当前没有 PopupContentPane 的 UUID 当箭头在顶部时没有 UUID,当箭头在底部时没有另一个 UUID。
有什么想法或解决方法吗?谢谢
(我补充说,到目前为止,这是我唯一需要使用 CSS 的 @media 标签来区分 iOS 样式和 Android 的情况样式。)
最初,当我们编写弹出对话框时,它是 iOS 唯一的功能,因为样式仅在 iOS 上。我们使用 9 片图像边框来做弹出窗口,我们不想在每个原生主题中复制该主题元素,所以我们将其留给了开发人员。
后来我们想出了在 RoundRectBorder
上显示箭头的功能。另一个优势是 iOS/Android 转向扁平化设计,将之前复杂的对话框样式变成了简单的纯白色弹出窗口。所以我们白白实现了这个跨平台。但是因为 iOS 有 pre-existing 图像边框,它仍然在 iOS 上使用并且没有被删除。我们可能应该删除它并处理出现的小兼容性问题。
我最近在 InteractionDialog
中致力于此:https://github.com/codenameone/CodenameOne/blob/master/CodenameOne/src/com/codename1/components/InteractionDialog.java#L786-L815
为 Dialog
做类似的事情可能有意义,它似乎在任何地方都没有该代码:https://github.com/codenameone/CodenameOne/blob/master/CodenameOne/src/com/codename1/ui/Dialog.java#L1209