【问题标题】:Android: why webview doesnt start loading url unless it is visible to user?Android:为什么 webview 不开始加载 url,除非它对用户可见?
【发布时间】:2012-09-17 13:01:49
【问题描述】:

我的 webview(最初是不可见的)获取要加载的 url:

@Override
public void onCreate(Bundle savedInstanceState){
    ...
    webView.loadUrl("some url");
    ...
}

然后,在 onClickListener 中,我将其可见性更改为可见,并且看不到任何加载。如果我将可见性设置为可见然后加载 url,它可以正常工作,但用户应该在加载 url 时等待一段时间。我想预加载所有内容并显示已经加载的网页。怎么做? Webview 仅在可见时才加载某些内容...

附:顺便说一句,我尝试使 webview 可见并将translationY 设置为足够大以使视图位于屏幕下方-仍然,除非我调用 setTranslationY(0); 否则它不会加载任何内容; ... 怎么办?

附言我尝试调用 webView.loadData - 效果相同。

【问题讨论】:

    标签: android webview


    【解决方案1】:

    试试这个:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen_web);
    
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.co.uk");
        mWebView.setWebViewClient(new HelloWebViewClient());
    }
    
    public void testing (View view){
        mWebView.setVisibility(View.VISIBLE);
    }
    

    screen_web.xml 中的按钮:

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="testing"
        android:text="Button" />
    

    screen_web.xml 中的WebView:

        <WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="0.32"
        android:visibility="invisible" />
    

    它对我很有效。

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 1970-01-01
      • 2018-10-18
      • 2021-06-29
      • 1970-01-01
      • 2013-08-14
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多