同様の質問を検索して見つけましたが、ほとんどの場合、実際に非表示にする方法ではなく、webView コンテンツを変更する方法について述べています。
私の webView は、最初は main.xml で android:visibility="gone" を使用して非表示になっています。myWebView.setVisibility(1); で動的に表示に変更します。ページが完全にロードされたとき(そしてそれが機能するとき)。ここで、エラーが検出されたときにこの webView を非表示にしたいと考えています。非表示にした理由は、エラーを通知するレイアウトに素晴らしい背景があるためです。これが最善の方法ではないことはわかっており、後で変更する可能性がありますが、今解決したいのは、エラーが発生したときに webView が非表示にならない理由です (単に楽しみのためかもしれません)。
これは私が試したことです:
@Override
public void onReceivedError (WebView view, int errorCode,
String description, String failingUrl) {
myWebView = (WebView) findViewById(R.id.webview);
// myWebView.setVisibility(0); // Doesn't work!
// if (errorCode == ERROR_TIMEOUT) { // Commented just for trying
try {view.stopLoading();} catch(Exception e){}
try {view.clearView();} catch(Exception e){}
view.loadUrl("file:///android_asset/error.html"); // This Works but I don't want it this way.
view.setBackgroundColor(0x00000000); // Trying to make it transparent. Doesn't work here
view.setVisibility(View.GONE); // Doesn't work. I have tried also with myWebView.
// }
}
何か案は?