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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值