2010-11-16 3 views
2

Я создал веб-представление с прозрачным фоном.setBackgroundColor() в Webview не работает

browser = new WebView(ActivityActivate.this); 
browser.setBackgroundColor(0); 

browser.getSettings().setJavaScriptEnabled(true); 
browser.addJavascriptInterface(new JavascriptInterface(), "javaInterface");    

browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
browser.getSettings().setSupportZoom(true); 

browser.loadDataWithBaseURL("https://checkout.google.com", form, "text/html", "UTF-8", null); 
llPaymentButtons.addView(browser); 

Вот JavaInterface, который должен изменить цвет фона, когда форма HTML представляется и все галочки пройти тест.

/** 
* Interface for Javascript communication 
*/ 
private class JavascriptInterface { 

    //This is in fact used but from JavaScript 
    @SuppressWarnings("unused") 
    public boolean checkboxPass() { 
     if(acceptsConditions() && acceptsLicense() && acceptsRefundPolicy()) { 
      browser.setBackgroundColor(Color.WHITE); 
      return true; 
     } 
     return false; 
    } 
} 

Это не работает, однако возвращенный документ все еще имеет прозрачный фон. Что я делаю неправильно, кажется, что browser.setBackgroundColor(Color.WHITE); ничего не делает?

+0

Вы уверены, что код был выполнен? Установили ли вы точку останова на заданной цветовой линии? –

+0

Это было фактически выполнено, но из-за неправильной Thread, кажется, что обработчик() исправил проблему – jax

ответ

16

вы можете переопределить webview фон с setbackgroundResource методом,

попробовать, как это вы получите его,

wv.setBackgroundColor(0); 
wv.setBackgroundResource(color.blue); 
wv.loadUrl(url); 
+0

Это не похоже, что @jax необходимо перезагрузить содержимое WebView. –

+0

Получить эту ошибку - 11-16 18: 59: 09.922 : ERROR/AndroidRuntime (1113): FATAL EXCEPTION: WebViewCoreThread 11-16 18: 59: 09.922: ERROR/AndroidRuntime (1113): android.view.ViewRoot $ CalledFromWrongThreadException: только исходный поток, создавший иерархию представлений, может коснуться его представлений , – jax

+0

Это потому, что я делаю это из интерфейса JavaScript ... Не уверен, что мне делать ... – jax

0

В настоящее время, мы могли бы webview.setBackgroundColor(Color.TRANSPARENT) в onLayout(), а затем добавить style="background-color:white" в HTML элемент.

Смежные вопросы