Android(安卓)获取WebView的高度
16lz
2021-01-26
项目里面用到了WebView,因为有些功能的需要,我需要拿到WebView的高度。但是,从网络上找了找没有什么好的解决方法,基本拿到的高度都是0.那么我们应该怎么样去获取WebView的高度呢?这里给出笔者的一个方法:自定义WebView.
public class MyWeb extends WebView {
private inter activity;
public MyWeb(Context context, AttributeSet attrs) { super(context, attrs);}@Overrideprotected void onSizeChanged(int w, int h, int ow, int oh) {//该方法会多次调用 super.onSizeChanged(w, h, ow, oh); activity.callback(h);}// 回调接口interface inter { void callback(int h);}public void setActivity(inter activity){ this.activity = activity;}
}
这里重写的WebView的onSizeChanged()方法,并利用接口回调将高度传回调用WebView的类中去。
下面是MainActivity
public class MainActivity extends Activity implements inter {
private MyWeb wv;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wv = (MyWeb) findViewById(R.id.wv); wv.loadUrl("http://baidu.com"); // WebView会默认使用浏览器打开网页,在这里我们在webview里面打开 wv.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // 返回true---Webview打开,返回false----浏览器打开 view.loadUrl(url); return true; } }); wv.setActivity(this);}@Overridepublic void callback(int height) { Log.e("tag", height + "----");}
}
更多相关文章
- Android(安卓)FrameWork——Binder机制详解(1)
- 【Android】AsyncTask机制
- OpenCore代码阅读--PVPlayer的实现
- Android(安卓)Camera框架
- Android(安卓)- 如何判断当前线程是否是主线程
- Android应用间调用方式——URL Scheme
- API Demos 2.2 研读笔记(9)——通过调用子Activity返回值
- 利用Xposed Hook打印Java函数调用堆栈信息的几种方法
- Unable to resolve dependency for ......