android webview 多次加载,android – 重复webview,我想在每个加载相同
如何在分屏中显示两个类似的webview,我想复制一个webview,我想同时滚动两个.谢谢
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="2">
android:id="@+id/webView"
android:layout_width="150dp"
android:layout_height="fill_parent"
android:layout_weight="1"
>
android:id="@+id/webView2"
android:layout_width="150dp"
android:layout_height="fill_parent"
android:layout_weight="1">
我试过这个,但我想复制webview.这显示另一个,我必须再次加载网址.
我不想在第二个加载agin我只想成为镜像.
解决方法:
试试这个,
create layout file content_main.xml
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="9">
android:id="@+id/webViewOriginal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"/>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Second View"/>
android:id="@+id/webViewMirror"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"/>
Create Class ObservableWebView for handle event from originalWebview
public class ObservableWebView extends WebView
{
private OnScrollChangedCallback mOnScrollChangedCallback;
public ObservableWebView(final Context context)
{
super(context);
}
public ObservableWebView(final Context context, final AttributeSet attrs)
{
super(context, attrs);
}
public ObservableWebView(final Context context, final AttributeSet attrs, final int defStyle)
{
super(context, attrs, defStyle);
}
@Override
protected void onScrollChanged(final int l, final int t, final int oldl, final int oldt)
{
super.onScrollChanged(l, t, oldl, oldt);
if(mOnScrollChangedCallback != null) mOnScrollChangedCallback.onScroll(l, t);
}
public OnScrollChangedCallback getOnScrollChangedCallback()
{
return mOnScrollChangedCallback;
}
public void setOnScrollChangedCallback(final OnScrollChangedCallback onScrollChangedCallback)
{
mOnScrollChangedCallback = onScrollChangedCallback;
}
/**
* Impliment in the activity/fragment/view that you want to listen to the webview
*/
public static interface OnScrollChangedCallback
{
public void onScroll(int l, int t);
}
}
Update MainActivity.java with,
public class MainActivity extends AppCompatActivity {
private WebView webViewMirror;
private ObservableWebView webViewOriginal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_main);
// initialize view
webViewOriginal = (ObservableWebView)findViewById(R.id.webViewOriginal);
webViewMirror = (WebView)findViewById(R.id.webViewMirror);
//set web settings for original
webViewOriginal.getSettings().setLoadsImagesAutomatically(true);
webViewOriginal.getSettings().setJavaScriptEnabled(true);
webViewOriginal.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
//set web settings for duplicate / mirroe
webViewOriginal.getSettings().setLoadsImagesAutomatically(true);
webViewOriginal.getSettings().setJavaScriptEnabled(true);
webViewOriginal.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
// set clients for webview
webViewOriginal.setWebViewClient(new WebClientForOriginal());
webViewMirror.setWebViewClient(new WebClientForMirror());
// add listener to listen scroll For original webview
webViewOriginal.setOnScrollChangedCallback(new ObservableWebView.OnScrollChangedCallback() {
public void onScroll(int x, int y) {
Log.d("MainActivity", "We Scrolled etc..." + " X " + x + " Y " + y);
webViewMirror.scrollTo(x,y);
}
});
//disabled touch event event.
webViewMirror.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return true;
}
});
// load urls
webViewOriginal.loadUrl("http://www.google.com");
webViewMirror.loadUrl("http://www.google.com");
}
/**
* Set web client for original web view
*/
private class WebClientForOriginal extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
webViewMirror.loadUrl(url);
return true;
}
}
/**
* Set web client for mirror web view
*/
private class WebClientForMirror extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
标签:android
来源: https://codeday.me/bug/20190527/1166256.html
android webview 多次加载,android – 重复webview,我想在每个加载相同相关推荐
- android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...
我正在创建一个使用webkit和chrome客户端的android应用程序.我希望能够在网页请求时获取当前位置.我设置的网页适用于普通浏览器就好了.然而,当我尝试访问该网页WebKit中,我不断收到此 ...
- android 加载条封装,Android基于JsBridge封装的高效带加载进度的WebView
图片发自简书App 概述 从去年4月项目就一直用起了JsBridge,前面也针对jsBridge使用姿势介绍过一篇入门篇,<Android JsBridge实战 打造专属你的Hybrid APP ...
- webview中的img标签加载Android本地的图片
在网上查了很多教程,感觉很麻烦,各种方法,最后最忌实践很简单,主要是两步: WebSettings webSettings=webView.getSettings();//允许webview对文件的操 ...
- Android 浏览器的研究(四)--- Apk的启动和主页的加载过程
当我们在Launcher中点击浏览器的图标时,浏览器的窗口会打开并显示主页(HomePage).这里我们对这一场景进行分析,研究浏览器如何启动,取得缺省主页并将它布局和显示的. 根据前边对WebVie ...
- 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 安全】DEX 加密 ( 不同 Android 版本的 DEX 加载 | Android 8.0 版本 DEX 加载分析 | Android 5.0 版本 DEX 加载分析 )
文章目录 一.不同版本的 DEX 加载 1.Android 8.0 版本 DEX 加载分析 2.Android 6.0 版本 DEX 加载分析 3.Android 5.0 版本 DEX 加载分析 一. ...
- chromebook刷机_如何从Chromebook上的APK侧面加载Android应用
chromebook刷机 Chromebooks can now download and install Android apps from Google Play, and it works pr ...
- Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条
可实现多种渐变.直角or弧角.进度条.加载条 (Various gradient, right or arc angle, progress bar and loading bar can be re ...
- Android RecyclerView(八)设置自定义 下拉刷新 与 上拉加载数据
Android RecyclerView(八)设置下拉刷新 与 上拉加载数据 GitHub 项目源码 CSDN 博客说明 智慧安卓App 文章分析 下拉刷新效果 上拉加载数据效果 1 xml布局文件中 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(11)、ArcGIS Runtime SDK常见空间数据加载...
ArcGIS Runtime SDK for Android 支持多种类型空间数据源.每一种都提供了相应的图层来直接加载,图层Layer是空间数据的载体,其主要继承关系及类型说明如下图所示: 转载请注 ...
最新文章
- C#读写文本文件小结
- 使用机器学习检测TLS 恶意加密流——业界调研***有开源的数据集,包括恶意证书的,以及恶意tls pcap报文***...
- 2018广技师C语言专插本试题,专插本2016广技师C语言专插本考试大纲已核对.doc
- 手机屏幕厂家信息软件_警惕假个税手机软件蹭热点,千万别被窃取私人信息
- 使用threading模块实现多线程
- 国内首个 App SDK 国家标准成功立项;苹果意外泄露iPhone 12发布时间;TypeScript 4.0 发布| 极客头条
- 初涉springboot(一)
- jasper s java jacal_Jasper's Java Jacal
- spring boot面试_Spring Boot面试问题
- 使用XML绑定下拉列表
- amd linux显卡驱动,AMDAMD ATI Radeon Mobility FireGL 9.10显卡驱动官方正式版下载,适用于linux-驱动精灵...
- selenium模拟登录163邮箱
- Winform常用控件的使用(一)
- matlab矩阵的合并
- wps在线预览接口_WPS文档在线预览接入的一点心得
- 月薪3w算法工程师日均7行代码被开除 / AI歌手入学上海音乐学院 / 天文照片被植入恶意代码...
- GNSS数据/产品下载地址
- 简单说说USB协议(一)
- Android P中的AVB校验(一)
- 2023年最新苹果账号更改/注册为美区账号及免国外支付购买和充值美区App Store礼品卡教程
热门文章
- 弗吉尼亚州为数据中心建设的电力线路产生争议
- Swift中viewWeb执行JS
- [转]Ionic系列——CodePen上的优秀Ionic_Demo
- 设计模式之----------适配器模式
- jstl的formatNumber标签的四舍五入问题
- java下载远程文件到本地
- MDT 2010 升级至 MDT 2012 updat1 操作系统分发bug
- 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped
- HTTP POST发消息
- Xcode4.4 import header 的问题解决方法