Xamarin Forms 3.6 Webview Android:Softkeyboard隐藏Webview中的输入字段

时间:2019-03-22 13:34:34

标签: android forms xamarin webview android-softkeyboard

我们有一个Xamarin Forms视图,其中只有一个工具栏和一个WebView。

ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         Title="TestApp"
         x:Class="TestApp.Client.Views.MainPage">
<ContentPage.ToolbarItems>
    <ToolbarItem
        Order="Primary" 
        Icon="ic_settings.png"
        Clicked="OnSettingsClicked"
        AutomationId="mnuSettings"
        Priority="1"
        x:Name="mnuSettings"
        Text="Settings"
    />
</ContentPage.ToolbarItems>
<WebView"
    Source="{Binding URL}">
</WebView>

当WebView包含HTML文本字段并且该字段成为焦点时,软键盘将打开,但隐藏该文本字段。我们目前正在使用Xamarin.Forms 3.6。我们已经尝试了很多东西,这些东西我们可以在网上找到,但是什么都没有。

当我们将WebView与Xamarin表单输入字段一起放在ScrollView中时,在显示软键盘时,输入字段会向上移动,这意味着AdjustResize行为似乎基本起作用,但不适用于WebView。 / p>

将WindowSoftInputMode设置为AdjustResize不会更改任何内容。

有人有主意吗?

1 个答案:

答案 0 :(得分:0)

您可以通过以下步骤解决此问题:

1使用以下代码检测软键盘是否正在显示:

    var inputMethodManager = (InputMethodManager)this.GetSystemService(Context.InputMethodService);
    var keyboardIsShown = inputMethodManager.IsAcceptingText;

2在显示键盘时提交动画以向上滚动页面。

3隐藏键盘时提交动画以向下滚动页面。