首页 文章

表格布局的键盘行为

提问于
浏览
1

表格布局中有textfields,pickers和textArea . 当textArea被聚焦时,键盘会出现,但只要触摸布局的其他部分,textarea就会向下移动(键盘不可见) . 为什么键盘一触及其他部分就不会消失?并且还看到了首选的时间选择器,它被挤压到更小的高度 . 当键盘下方有组件时,为什么我不能向上移动整个屏幕高度?

看看视频here .

TableLayout tl = new TableLayout(5, 2);
Container testDriveContainer = new Container(tl);

testDriveContainer.add(tl.createConstraint().widthPercentage(35), nameLabel).add(tl.createConstraint().widthPercentage(65), nameData)
        .add(tl.createConstraint().widthPercentage(35), mailLabel).add(tl.createConstraint().widthPercentage(65), mailData)
        .add(tl.createConstraint().widthPercentage(35), mobileLabel).add(tl.createConstraint().widthPercentage(65), mobileData)
        .add(tl.createConstraint().widthPercentage(35), addressLabel).add(tl.createConstraint().widthPercentage(65), addressData)
        .add(tl.createConstraint().widthPercentage(35), FlowLayout.encloseCenterMiddle(vehicleLabel)).add(tl.createConstraint().widthPercentage(65), vehicleData)
        .add(tl.createConstraint().widthPercentage(35), FlowLayout.encloseCenterMiddle(interestedModelLabel)).add(tl.createConstraint().widthPercentage(65), interestedModelData)
        .add(tl.createConstraint().widthPercentage(35), FlowLayout.encloseCenterMiddle(preferredDateLabel)).add(tl.createConstraint().widthPercentage(65), preferredDateData)
        .add(tl.createConstraint().widthPercentage(35), FlowLayout.encloseCenterMiddle(preferredTimeLabel)).add(tl.createConstraint().widthPercentage(65), preferredTimeData)
        .add(tl.createConstraint().widthPercentage(35), FlowLayout.encloseCenterMiddle(preferredLocationLabel)).add(tl.createConstraint().widthPercentage(65), preferredLocationData)
        .add(tl.createConstraint().widthPercentage(35), commentLabel).add(tl.createConstraint().widthPercentage(65), commentData);

Container mainContainer = BoxLayout.encloseY(testDriveContainer);
add(BorderLayout.CENTER, mainContainer);

1 回答

  • 0

    您必须始终具有文本字段的可滚动父级 . 由于边框布局禁用了内容窗格的默认可滚动性,因此您需要执行以下操作:

    mainContainer.setScrollableY(true);
    

    您可以使用 stopEditing() 手动折叠vkb,或者用户可以单击“完成” .

相关问题