如何在分屏中显示两个类似的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,我想在每个加载相同相关推荐

  1. android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...

    我正在创建一个使用webkit和chrome客户端的android应用程序.我希望能够在网页请求时获取当前位置.我设置的网页适用于普通浏览器就好了.然而,当我尝试访问该网页WebKit中,我不断收到此 ...

  2. android 加载条封装,Android基于JsBridge封装的高效带加载进度的WebView

    图片发自简书App 概述 从去年4月项目就一直用起了JsBridge,前面也针对jsBridge使用姿势介绍过一篇入门篇,<Android JsBridge实战 打造专属你的Hybrid APP ...

  3. webview中的img标签加载Android本地的图片

    在网上查了很多教程,感觉很麻烦,各种方法,最后最忌实践很简单,主要是两步: WebSettings webSettings=webView.getSettings();//允许webview对文件的操 ...

  4. Android 浏览器的研究(四)--- Apk的启动和主页的加载过程

    当我们在Launcher中点击浏览器的图标时,浏览器的窗口会打开并显示主页(HomePage).这里我们对这一场景进行分析,研究浏览器如何启动,取得缺省主页并将它布局和显示的. 根据前边对WebVie ...

  5. 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  6. 【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 加载分析 一. ...

  7. chromebook刷机_如何从Chromebook上的APK侧面加载Android应用

    chromebook刷机 Chromebooks can now download and install Android apps from Google Play, and it works pr ...

  8. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条

    可实现多种渐变.直角or弧角.进度条.加载条 (Various gradient, right or arc angle, progress bar and loading bar can be re ...

  9. Android RecyclerView(八)设置自定义 下拉刷新 与 上拉加载数据

    Android RecyclerView(八)设置下拉刷新 与 上拉加载数据 GitHub 项目源码 CSDN 博客说明 智慧安卓App 文章分析 下拉刷新效果 上拉加载数据效果 1 xml布局文件中 ...

  10. 《ArcGIS Runtime SDK for Android开发笔记》——(11)、ArcGIS Runtime SDK常见空间数据加载...

    ArcGIS Runtime SDK for Android 支持多种类型空间数据源.每一种都提供了相应的图层来直接加载,图层Layer是空间数据的载体,其主要继承关系及类型说明如下图所示: 转载请注 ...

最新文章

  1. C#读写文本文件小结
  2. 使用机器学习检测TLS 恶意加密流——业界调研***有开源的数据集,包括恶意证书的,以及恶意tls pcap报文***...
  3. 2018广技师C语言专插本试题,专插本2016广技师C语言专插本考试大纲已核对.doc
  4. 手机屏幕厂家信息软件_警惕假个税手机软件蹭热点,千万别被窃取私人信息
  5. 使用threading模块实现多线程
  6. 国内首个 App SDK 国家标准成功立项;苹果意外泄露iPhone 12发布时间;TypeScript 4.0 发布| 极客头条
  7. 初涉springboot(一)
  8. jasper s java jacal_Jasper's Java Jacal
  9. spring boot面试_Spring Boot面试问题
  10. 使用XML绑定下拉列表
  11. amd linux显卡驱动,AMDAMD ATI Radeon Mobility FireGL 9.10显卡驱动官方正式版下载,适用于linux-驱动精灵...
  12. selenium模拟登录163邮箱
  13. Winform常用控件的使用(一)
  14. matlab矩阵的合并
  15. wps在线预览接口_WPS文档在线预览接入的一点心得
  16. 月薪3w算法工程师日均7行代码被开除 / AI歌手入学上海音乐学院 / 天文照片被植入恶意代码...
  17. GNSS数据/产品下载地址
  18. 简单说说USB协议(一)
  19. Android P中的AVB校验(一)
  20. 2023年最新苹果账号更改/注册为美区账号及免国外支付购买和充值美区App Store礼品卡教程

热门文章

  1. 弗吉尼亚州为数据中心建设的电力线路产生争议
  2. Swift中viewWeb执行JS
  3. [转]Ionic系列——CodePen上的优秀Ionic_Demo
  4. 设计模式之----------适配器模式
  5. jstl的formatNumber标签的四舍五入问题
  6. java下载远程文件到本地
  7. MDT 2010 升级至 MDT 2012 updat1 操作系统分发bug
  8. 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped
  9. HTTP POST发消息
  10. Xcode4.4 import header 的问题解决方法