微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin Forms Android WebViewRenderer 里面 ScrollView 截断内容

如何解决Xamarin Forms Android WebViewRenderer 里面 ScrollView 截断内容

自定义了 iOS 和 Android WebVieWrenderer,其中我将 WebView 的 HeightRequest 设置为其内容的大小以防止 WebView 滚动。

iOS 渲染器:

public override void DidFinishNavigation( WKWebView webView,WKNavigation navigation )
{
    wv.HeightRequest = (double)webView.ScrollView.ContentSize.Height;
}

Android 渲染器:

public override async void OnPageFinished( WebView view,string url )
{
    if (custWebView != null)
    {
        int i = 10;
        while (view.ContentHeight == 0 && i-- > 0)
            await System.Threading.Tasks.Task.Delay( 100 ); 

        custWebView.HeightRequest = view.ContentHeight;
    }
}

显示自定义 WebView 的 XAML:

<ScrollView>
    <StackLayout>
        <Label Text="Label 1" />
        <Label Text="Label 2"/>
        <ctrl:CustomWebView x:Name="webView">
            <WebView.source>
                <HtmlWebViewSource Html="{Binding Email.html}" />
            </WebView.source>
        </ctrl:CustomWebView>
    </StackLayout>
</ScrollView>

在 iOS 中它完美运行,包括标签在内的整个屏幕滚动到 WebView 内容的结尾。但是在 Android 上它只将内容渲染到屏幕大小,其余的只是空白区域。 WebView 高度正确,因为我可以滚动,但没有内容通过屏幕高度。

如果我将 WebView 移到 ScrollView 之外,那么它也适用于 Android,但我的目标是固定 WebView 高度,以便我可以在 WebView 上方拥有其他控件并且整个页面都可以滚动。

任何想法为什么内容在 Android 上被切断? 提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。