通过js给android控件WebView设padding
项目中有个界面是用来显示一个网页的,很简单,放个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的更多相关文章
- HTML5学习总结-10 Android 控件WebView显示网页
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient 1)setWebClient: ...
- (转载)android控件之WebView控件缩小
android控件之WebView控件缩小 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-16我要评论 发现这个控件挺好用,能自已控制进度条,而且这个控件的功能非常壮大,先上个简单的 ...
- 控件WebView网页的加载
Android:控件WebView网页的加载 WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWe ...
- android控件的属性
android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...
- Android控件TextView的实现原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8636153 在前面一个系列的文章中,我们以窗口 ...
- Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...
- JS数量输入控件
JS数量输入控件 很早看到kissy首页 有数量输入控件,就随便看了下功能 感觉也不怎么难 所以也就试着自己也做了一个, 当然基本的功能和他们的一样,只是用了自己的编码思想来解决这么一个问题.特此给大 ...
- Android群英传笔记——第三章:Android控件架构与自定义控件讲解
Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...
- Robotium之Android控件定位实践和建议
本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议Appium基于安卓的各种FindEl ...
随机推荐
- Hibernate操作指南-搭建一个简单的示例(基于原生API和XML)
- Mysql查看版本,端口命令
有一段时间没有鼓捣TP了,今天又再复习一下.在Model获取数据的时候提示'MySQL server has gone away'错误,一开始以为是TP问题,还查了半天,后来才发现是配置mysql的时 ...
- laravel5.3----------调度任务以及Artisan
1.在使用的过程中会遇到有些函数不能用需要在php配置文件里面打开: disable_functions = exec,passthru,popen,proc_open,shell_exec,syst ...
- filter过滤器怎么写
package com.wh.filter; import java.io.IOException;import javax.servlet.Filter;import javax.servlet.F ...
- jdbc 数据库连接
连接数据库 1)通过Driver来连接(Driver:数据库厂商提供的一个接口) public void testDriver()throws Exception{ Driver driver = n ...
- React常用的API说明
楼主刚开始学习react,感受到了他的博大精深,看到很多莫名的用法,不知云云,找了很多没有找到参考手册,只有在中文社区和react官方看了一些,收集了一些比较常用的API,有补充的可以楼下评论补充.后 ...
- WebForm 内置对象
内置对象: Response对象:响应请求 Response.Write("<script>alert('添加成功!')</script>"); Respo ...
- arrayToJson将数组转化为json格式的js代码 ///////////////////////zzzzzzzzzzzzzzzz
//去除空格 function trim(str) { return str.replace(/\s|\xA0/g,""); } /** *js数组转json * */ fun ...
- java选择排序
/** * 选择排序 * @param a * @date 2016-10-8 * @author shaobn */ public static void selectSort(int[] a){ ...
- c# 如何隐藏TabControl控件的标签
http://www.cnblogs.com/chenleiustc/archive/2009/11/25/1527813.html 方法一:将标签缩小到机会看不到:设置页面的大小模式会自动适合(会尽 ...