使用WebViewRenderer正确呈现网页高度,但不使用ViewRenderer

问题描述 投票:0回答:1

默认的WebViewRenderer和我的自定义ViewRenderer之间有一些不同,我必须找出原因。基本上,如果我使用自定义ViewRenderer,则不会显示网页。

ViewRendererheight: 100%;有一些问题,并解释这个CSS错误。结果高度是0px,尽管它应该使用全高。另一方面,它适用于精确尺寸(例如400px)。

WebViewRenderer代码:

<local:CustomWebView x:Name="webView"
     Source="http://somesite"
     HorizontalOptions="FillAndExpand"
     VerticalOptions="FillAndExpand"
     HeightRequest="1000"
     WidthRequest="1000"/>
public class CustomWebView : WebView
{
}

public class CustomWebViewRenderer : WebViewRenderer
{
    public CustomWebViewRenderer(Context context) : base(context)
    {

    }
}

ViewRenderer代码:

<local:HybridWebView x:Name="webView"
                     HorizontalOptions="FillAndExpand"
                     VerticalOptions="FillAndExpand"
                     HeightRequest="1000"
                     WidthRequest="1000"/>
public class HybridWebView : View
{
}

public class HybridWebViewRenderer : ViewRenderer<HybridWebView, Android.Webkit.WebView>
{
    private Context context;

    public HybridWebViewRenderer(Context context) : base(context)
    {
        this.context = context;
    }

    protected override void OnElementChanged(ElementChangedEventArgs<HybridWebView> e)
    {
        base.OnElementChanged(e);

        if (Control == null)
        {
            var webView = new Android.Webkit.WebView(this.context);
            webView.Settings.JavaScriptEnabled = true;
            webView.SetWebViewClient(new CustomWebViewClient());
            SetNativeControl(webView);
        }

        if (e.OldElement != null)
        {
        }

        if (e.NewElement != null)
        {
            Control.LoadUrl("http://somesite");
        }
    }
}

public class CustomWebViewClient : WebViewClient
{

}

一个假设是响应式网站适应其WebView大小,并且由于渲染过程发生在背景中,因此此时它以某种方式具有零高度。

xamarin.forms webview xamarin.android android-webview custom-renderer
1个回答
0
投票

我不知道为什么,但this为我解决了这个问题:

webView.LayoutParameters = new LinearLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent);

如果有人有线索,请评论。

© www.soinside.com 2019 - 2024. All rights reserved.