在JavaFX中,可以通过以下步骤将虚拟键盘放在底部居中:
以下是一个示例代码:
import javafx.application.Application;
import javafx.geometry.Bounds;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Popup;
import javafx.stage.Stage;
public class VirtualKeyboardExample extends Application {
@Override
public void start(Stage primaryStage) {
TextField textField = new TextField();
VBox container = new VBox(textField);
container.setStyle("-fx-padding: 10px;");
Popup popup = new Popup();
popup.getContent().add(container);
popup.setAutoHide(true);
textField.setOnMouseClicked(event -> {
Bounds bounds = textField.localToScreen(textField.getBoundsInLocal());
popup.show(textField, bounds.getMinX(), bounds.getMaxY());
});
Rectangle background = new Rectangle(400, 400, Color.LIGHTGRAY);
background.setOnMouseClicked(event -> popup.hide());
VBox root = new VBox(background);
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在这个示例中,我们创建了一个主舞台和场景,并在场景中添加了一个灰色的矩形作为背景。当点击文本框时,虚拟键盘将显示在底部居中的位置。当点击文本框外的其他区域时,虚拟键盘将隐藏起来。
请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。另外,这个示例中并没有涉及到具体的云计算相关内容,因此无法提供腾讯云相关产品和链接。
前阵子在一个移动项目中,通过 的方式 绑定click 事件来提交一个表单,由于表单信息比较敏感,于是采用的post 同步提交的方式,原本到也没有什么。后来万恶的PM说 “你这个按钮呀,要固定在底部比较好” ,于是乎就通过 position:fixed 固定到底部了。那么,问题来了 , 在ios 下,虚拟键盘是浮在页面上层的,导致的结果是当键盘收起后,浮在最底部的按钮不在最底下,而跑到中间来了,(极端条件下还可能挡住输入框导致无法输入),并且随着屏幕的滚动而滚动,,(表现类似于absolute) ,,高大上的苹果也是真心坑了一回。
领取专属 10元无门槛券
手把手带您无忧上云