2017-08-23 24 views
1

我想用Ionic 3使用JavaScript實現WhatsApp類似Messenger的功能,並用鍵盤遇到麻煩。當我點擊輸入文本區域時,鍵盤將按照鍵盤打開的量移動整個應用程序。如果我使用下面的代碼來禁用滾動功能,那麼我的輸入文本區域會隱藏在鍵盤後面。Ionic 2/3 WhatsApp喜歡信使功能

我想要的是禁用滾動,但輸入文本區域與鍵盤一起向上移動。有誰知道如何巧妙地解決這個問題?非常感謝!!

{ 
     platforms : { 
      ios : { 
      scrollAssist: false, 
      autoFocusAssist: false 
      } 
     } 
     } 

回答

0

如果我理解你正確看待keyboard plugin它有方法disableScroll(禁用)

+0

是的,這解決了部分問題。另一部分事實上,我的輸入文本框現在隱藏在打開的鍵盤後面。任何想法如何阻止滾動,但僅限於輸入文本區域(您輸入消息的地方)?謝謝! – Dimitri

0

要做的第一件事就是用ionic-plugin-keyboard從推動/滾動內容窗格上停止原生瀏覽器和讓鍵盤上滑動並覆蓋現有內容:

constructor(private keyboard: Keyboard) { 
    this.platform.ready().then(() => { 
    // ... 

    this.keyboard.disableScroll(false); // <- like this 

    // ... 
} 

注意Keyboard.disableScroll() iOS和Windows支持只有

是的,解決了部分問題。另一部分事實上,我的輸入文本框現在隱藏在打開的鍵盤後面。

就像你可以看到this OS answer,我發現下面的配置似乎更好地工作(記住,有是有關鍵盤的一些問題仍處於打開狀態):

@NgModule({ 
    declarations: [ 
     MyApp, 
     //... 
    ], 
    imports: [ 
     //... 
     IonicModule.forRoot(MyApp, { 
      scrollPadding: false, 
      scrollAssist: true, 
      autoFocusAssist: false 
     }) 
    ], 
    bootstrap: [IonicApp], 
    entryComponents: [ 
     // ... 
    ], 
    providers: [ 
     // ... 
    ] 
}) 
export class AppModule { } 

關鍵是scrollPadding: falsescrollAssist: true:通過保留scrollAssist: true,我們避免輸入被鍵盤隱藏,如果它靠近頁面的底部,並且通過設置scrollPadding: false,我們還可以避免與隱藏後的空白空間相關的一些奇怪的錯誤鍵盤。