我有Fragment
WebView
,我想要隐藏某些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;
}
}
我做错了什么?有更好的方法吗?
非常感谢帮助。如果代码很乱,请原谅我,我只是个初学者 - 谢谢!
答案 0 :(得分:0)
尝试在XML文件本身中将可见性设置为INVISIBLE,而不是在Java代码中设置它。这背后的原因是您正在设置视图的膨胀,然后在此之后设置可见性,因此,视图将显示短暂时刻的时间跨度。这对我有用,也适合你。如果有帮助,请告诉我们!