项目中有个界面是用来显示一个网页的,很简单,放个WebView就ok了,可是返回按钮放在哪 ,ui的设计是在底部显示一个半透明的条,左边有一个返回按钮。这个条显示在内容上面。我有一个担心,就是要是最下面的内容需要操作的,虽然看的见,但不能操作。开始很自然就想到设padding,可是android的WebView有个bug,设了没有用。

之后想了很多的办法,通过判断WebView滑动到底了,再自己做动画,可是效果不是太好

if(Utils.dip2px(this,mWvContent.getContentHeight()) - mWvContent.getHeight() - mWvContent.getScaleY()== 0 ){}

这个判断条件有点点问题,有时候,他到底了,可是不等于0,这个可以加点幅度。然后就是一开始我也是在网上找了些判断,他们是直接用的getContentHeight(),实际使用中我发现在这个返回的是dp,我们需要转成px。

我还想着重写WebView,能力不怎么样,只能想到重新测量高度,在OnDraw()方法里画点底部的空白,可是都没有能实现。

达不到效果,于是我不甘心的继续在网上搜了下WebView 设 Padding,发现在个大神的:http://blog.csdn.net/janronehoo/article/details/45100551

我有想过通过js去改网页,可是我js不怎么得,不会啊!当我看到标题时,高兴的不行,最重要的是,问题解决了。谢谢大神

大神的代码:

webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
webView.loadUrl("javascript:document.body.style.padding=\"8%\"; void 0");
}
});

和我想的效果差一点点,我就试着改了改,试过padding-bottom不行,paddingBottom可以,反正不懂,也就没有细究,实现就行,然后就是怎么设固定高度,而不是百分比。

mWvContent.loadUrl("javascript:document.body.style.paddingBottom=\"" + Utils.px2dip(this, mTvBack.getHeight()) + "px\"; void 0");

需要注意的是,执行js需要在page load 结束之后,大神代码中的onPageFinished()方法,有时候一些网页是不会调用的,所以还需要一些其他的,比如onReceivedSslError()方法,这也是在一些大神那看到的,感谢n多大神的分享。

通过js给android控件WebView设padding的更多相关文章

  1. HTML5学习总结-10 Android 控件WebView显示网页

    WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient 1)setWebClient: ...

  2. (转载)android控件之WebView控件缩小

    android控件之WebView控件缩小 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-16我要评论 发现这个控件挺好用,能自已控制进度条,而且这个控件的功能非常壮大,先上个简单的 ...

  3. 控件WebView网页的加载

    Android:控件WebView网页的加载 WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWe ...

  4. android控件的属性

    android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...

  5. Android控件TextView的实现原理分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...

  6. Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...

  7. JS数量输入控件

    JS数量输入控件 很早看到kissy首页 有数量输入控件,就随便看了下功能 感觉也不怎么难 所以也就试着自己也做了一个, 当然基本的功能和他们的一样,只是用了自己的编码思想来解决这么一个问题.特此给大 ...

  8. Android群英传笔记——第三章:Android控件架构与自定义控件讲解

    Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...

  9. Robotium之Android控件定位实践和建议

    本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议Appium基于安卓的各种FindEl ...

随机推荐

  1. 【转载】JMeter3.0图形化HTML报告中文乱码问题处理

    由于个人在JMeter 3.0的实际应用中,脚本中的Test Plan/Sampler等元件命名都没有使用中文,所以在之前介绍Dashboard Report特性的博客(原文戳这里))成文时,没有提到 ...

  2. Linux环境安装MySQL数据库

    1.  下载mysql安装包 下载地址1:  http://www.mysql.com/   (mysql官网) 下载地址2:  http://mirrors.sohu.com/mysql/   (其 ...

  3. 如何从投票的网站的管理后台导出已投票的邀请码数据至Excel,并且稍修改,再导入到现场抽奖软件中?

    第一步:进入投票网站的管理后台,导出 已投票 的 邀请码 相关信息至Excel中,下图所示: 并且 删除第一行表头汉字信息. 第二步:把第A列 数值 信息 转换 为 文本 信息(注:转换方法详细点击此 ...

  4. E-Business Suite 12.2 startCD 50 Install Fails with Fatal Error: TXK Install Service oracle.apps.fnd.txk.config.ProcessStateException: OUI process failed Cannot install Web Tier Utilities

    在rhel7.2上,使用startCD 50安装ebs r12.2的使用,安装到38%的时候就报错,遇到了和以下文章类似的问题: http://www.cnblogs.com/abclife/p/49 ...

  5. EasyUI的使用

    EasyUI包含有很多“UI控件”,实现了网页中常见的(或者是一些模拟桌面的)效果,这样我们就不用“重新造轮子”了,只要掌握了这些控件的用法,就可以容易的在网页上实现这些效果了. 所以,接下来的问题就 ...

  6. MVC中的一般权限管理

    权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少.权限管理几乎出现在任何系统里面,只要有用户和密码的系统.权限管理还是比较复杂的,有的固定到某个模 ...

  7. ZOJ 2412 Farm Irrigation

    Farm Irrigation Time Limit: 2 Seconds      Memory Limit: 65536 KB Benny has a spacious farm land to ...

  8. MXNet学习~第一个例子~跑MNIST

    反正基本上是给自己看的,直接贴写过注释后的代码,可能有的地方理解不对,你多担待,看到了也提出来(基本上对未来的自己说的),三层跑到了97%,毕竟是第一个例子,主要就是用来理解MXNet怎么使用. #导 ...

  9. UI,切图,命名

    APP切图流程和APP切图命名规范详细完整版 http://www.25xt.com/appdesign/7339.html Marketch

  10. Nop源码分析二

    上文我们已经通过该行代码:var typeFinder = containerManager.Resolve<ITypeFinder>(); 从注入容器中获取到了typeFinder实例. ...