有一种方法可以在 javafx 移动设备上更改文本选择句柄光标样式吗?

There is a way to change text Selection Handle cursor style on javafx mobile?

我不确定是这个 css 问题还是其他问题。 Javafx 没有 css 文本选择光标的样式,因为 javafx 可能不是为移动应用程序设计的。当我搜索它时。我发现 css 输入插入符号的样式。就像 this 但我遇到的问题并非如此。任何帮助,将不胜感激。

这里有我想要的样本

这是我移植到 android 后的 javafx 项目

是的,有办法。

JavaFX 的内置控件 TextFieldTextArea 定义插入符节点,使用具有 CSS 样式的 caretHandle, selectionHandle1, selectionHandle2 堆栈窗格 类 caret-handleselection-handle

这在最新的JavaFX version中仍然有效:

caretHandle.getStyleClass().setAll("caret-handle");
selectionHandle1.getStyleClass().setAll("selection-handle");
selectionHandle2.getStyleClass().setAll("selection-handle");

在常规桌面平台上,您将使用 modena.css,其中不使用 caret-handleselection-handle 样式 类。

但是在 Android 等其他平台中,embedded.csstouch.cssused, these do use the style classes:

.caret-handle {
    -fx-background-color: transparent,
                          black /*#ACACAC*/,
                          linear-gradient(to bottom, #AFAFAF 0%, #DFDFDF 100%);
    -fx-shape: "M11.974,2.579L20,12.358V20H4V12.356L11.974,2.579z";
...

-fx-shape中的路径设置您在图片中发布的形状:

由 CSS 设置,您始终可以用自己的形状覆盖。

您只需要将它添加到您的 CSS 文件中,例如:

.caret-handle {
    -fx-background-color: blue;
    -fx-shape: "M 100,100 m -75,0 a 75,75 0 1,0 150,0 a 75,75 0 1,0 -150,0z";
    -fx-background-insets: 0;
    -fx-padding: 0.5em;
}

那会给你: