WebView - 使用 getElementById 隐藏 div 不会立即工作



我有一个WebViewFragment,我想隐藏某些div。它有效,但这些div 不会立即隐藏并且可以看到 - 有时是几分之一秒,有时更长。我试图添加setVisibility(View.INVISIBLE)onPageFinished setVisibility(View.VISIBLE).这有点帮助,但div 仍然可见。如果我点击WebView中的链接,下一页显示的div会更长。

这是代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
public class TestFragment extends Fragment {
public WebView mWebView;
ProgressBar progressBar;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View fragmentView =inflater.inflate(R.layout.fragment_main, container, false);
String url = "https://www.example.com";
mWebView = (WebView) fragmentView.findViewById(R.id.webview);
mWebView.setVisibility(View.INVISIBLE);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView rootView, String url)
{
mWebView.loadUrl("javascript:(function() { " +
"document.getElementById('page-header').remove(); " +
"document.getElementsByTagName('footer')[0].style.display="none"; " +
"document.getElementsByTagName('ol')[0].style.display="none"; " +
"})()");
mWebView.setVisibility(View.VISIBLE);
}
});
mWebView.loadUrl(url);
return fragmentView;
}
}

我做错了什么?有没有更好的方法可以做到这一点?

帮助将不胜感激。如果代码混乱,请原谅我,我只是一个初学者 - 谢谢!

尝试在XML文件本身中将可见性设置为不可见,而不是在Java代码中设置它。这背后的原因是您正在设置视图的膨胀,然后设置可见性,因此,视图将显示一小段时间。这对我有用,也应该对你有用。让我知道它是否有帮助!

最新更新