Xamarin WebView高度重置

    在Xamarin中,WebView需要指定控件高度,或者包含在Grid中后,再指定Grid的高度,但是有时候页面需要我们实现ScrollView中包含WebView及其他布局,且WebView高度不可指定为固定高度。在踩了许多坑后,可通过以下方式实现:

    首先,项目需要添加第三方控件“Xam.Plugin.WebView”的引用,这个webview可以方便的注入JS代码,如下图所示:


注意别忘记分别在不同平台上进行初始化哦~~~



    其次,在布局中添加对WebView的引用,注意需要在布局头部添加命名空间的引用:


这里,我展示的是一个新闻的详情,由头部(标题、来源、时间)+正文(带HTML标签的字符串)+底部(意见反馈的相关布局)三部分组成,我先给webview设置了一个较小的默认高度200,可以不设置或者设置较小的高度。

    最后,在***.xaml.cs文件中给webview注入JS代码并获得内容高度后,给webview重新指定高度。



截图中我用到的BaseHelper.GetWebViewData()是我自定义的一个封装方法,主要是控制正文显示的,比如让图片宽度不大于屏幕宽度,控制文本的边距、字体、字号等,大家可以参考下:

//获得HTML内容
        public static string GetWebViewData(string content)
        {
            return "<html><head lang='zh-CN'><meta charset='UTF-8'><title></title><style>" +
                    "body{padding:10px;font-size:16px;font-style:normal;font-weight:normal;" +
                    "font-variant:normal;color:#666666;text-decoration:none;line-height:1.5;" +
                    "margin:6px;}.fullimg{width:100%;-moz-border-radius:5px;border-radius:5px;}" +
                    "img{max-width:100%;}table{width: 100% !important}" +
                    "</style></head><body>" + content + "</body></html>";
        }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值