项目中有个界面是用来显示一个网页的,很简单,放个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. sql关联表查询结果并插入

    这里涉及三个表,AA,BB,CC,将AA的数据更新到CC表中,将AA中LABEL_ID分别截取字段与BB表中的label_id对应查询到LABEL_NAME作为CC表的一个字段插入,这里分成四段查询 ...

  2. (转)SVN服务器搭建和使用(二)

    上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用. 首先打开Vi ...

  3. Spark:读取hdfs gz压缩包

    spark 1.5.1是支持直接读取gz格式的压缩包的,和普通文件没有什么区别: 使用spark-shell进入spark shell 交互界面: 输入命令: sc.textFile("\h ...

  4. 游戏机制(Machinations)在线演示工具

    >>> http://www.jorisdormans.nl/machinations/

  5. 数据结构看书笔记(二)--算法(Algorithm)简介

    算法:是解决问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 算法的特性:算法具有五个特性:输入.输出.有穷性.确定性.可行性 输入输出:算法具有零个或多个输入:至 ...

  6. freemarker 数据做加减计算

    controller的部分: @Controller@RequestMapping("/ContactsFrameIndex")public class ContactsFrame ...

  7. php判断是否为微信浏览器访问

    今天遇到个问题,就是需要判断是否在微信浏览器内访问: if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {    ...

  8. Java绘图

    paintComponent(Graphics g)方法: 1.不调用super.paintComponent(g)的话,rePaint()的时候就会把你写的paintComponent中的内容绘制上 ...

  9. php生成随机密码的几种方法

    方法一: 1.在 33 – 126 中生成一个随机整数,如 35,2.将 35 转换成对应的ASCII码字符,如 35 对应 #3.重复以上 1.2 步骤 n 次,连接成 n 位的密码 该算法主要用到 ...

  10. 在Excel里用vba给合并的单元格添加注释

    Excel里使用VBA对已经合并的单元格添加注释,直接使用AddComment会报: 运行时错误 '1004':应用程序定义或者对象定义错误 找了很多文章都没找到怎么解决,最后发现在AddCommen ...