代码之家  ›  专栏  ›  技术社区  ›  Magnesium

webview中的虚拟键盘重叠输入

  •  0
  • Magnesium  · 技术社区  · 6 年前

    我不确定是否有人能帮上忙,因为我有一个慷慨的问题,我很不受欢迎,但我会采取任何一般的想法,你们可能有。

    我有一个慷慨解囊的网络应用程序,显示了一个角度应用程序的网络视图,我的问题是,该视图(ChromeV72为基础)将不会滚动下的输入时,它得到的重点,让用户看到他在键入什么。

    在浏览器中加载页面效果很好,我在androidstudiowebview中也尝试过。

    0 回复  |  直到 6 年前
        1
  •  1
  •   fourjs.reuben    6 年前

    https://4js.com/support/issue/?id=GMA-1319

    否则,向您当地的4Js支持联系人提出一个案例(假设您正在维护中)。过去曾有过在该领域开展工作的案例 https://4js.com/support/issue/?id=GMA-920

    PS关于你的开场白,4Js慷慨解囊有一个付费的支持模式。矛盾的是你不会在这里看到很多4Js慷慨的问题,因为他们应该得到回答。由您当地的支持联系人和2。我们的开发者论坛。然后,在使用诸如堆栈溢出帖子数量之类的度量的语言流行度度量中,这对我们不利。

        2
  •  0
  •   Swoox    6 年前

    所发生的是,你的高度你的div没有调整到虚拟键盘。

    我建议在构造函数中这样做:

    const $resizeEvent = fromEvent(window, 'resize')
           .map(() => {
             return window.innerHeight;
           })
           .debounceTime(20).subscribe(data => {
              this.overflowHeight = `${data}px`;
           });
    

    然后将高度更改为div的新高度。

    在html中:

    <div [ngStyle]="'height': overflowHeight, 'overflow': 'auto'}" [scrollTop]="scrollHeight"></div>
    

    抬头 如果使用子视图,请确保检查包围了多少像素,并执行高度-像素。

    每个输入都需要有一个唯一的id:

    <input id={{uniqueId}} (focus)="scrollTo(uniqueId) (scroll)="setScrollHeigth($event)" />
    

    private scrollTo(_index: any) {
            if (window.screen.width === 360) {
                height = document.getElementById(_index).offsetTop;
                if (height > 0) { this.scrollHeight = height; }
                else if (this.scrollHeigthElm > 0) { this.scrollHeight = 0; }
            }
    } 
    
    private setScrollHeigth(_event: any) { 
        this.scrollHeigthElm = _event.srcElement.scrollTop; 
    } 
    

    这样做是检查你的卷轴是否高于零,并移动它。当你的卷轴在0时重置它。

        3
  •  0
  •   Magnesium    6 年前

        4
  •  0
  •   Magnesium    4 年前