I’m trying to re-write a java android app into Xamarin.Android, however I have come across an issue with the background transparency of the WebView that I use to display the contents of each screen.
This code works correctly on the java version (Black text on a green background), but in the C# version, the WebView’s background is black (black rectangle on the green background).
Java Code:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(getApplicationContext()); layout.setBackgroundColor(Color.GREEN); WebView webView = new WebView(getApplicationContext()); layout.addView(webView); setContentView(layout); webView.getSettings().setJavaScriptEnabled(true); webView.setBackgroundColor(Color.TRANSPARENT); String html = "<html><body style='background-color: transparent;'>Some text...</body></html>"; webView.loadData(html, "text/html", "UTF-8"); }
C# Code:
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); var layout = new LinearLayout(ApplicationContext); layout.SetBackgroundColor(Color.Green); var webView = new WebView(ApplicationContext); layout.AddView(webView); SetContentView(layout); webView.Settings.JavaScriptEnabled = true; webView.SetBackgroundColor(Android.Graphics.Color.Transparent); string html = "<html><body style='background-color: transparent;'>Some text...</body></html>"; webView.LoadData(html, "text/html", "UTF-8"); }
There is also a ‘Android.Resource.Color.Transparent’, but don’t use this one as values returned from the Android.Resource namespace are resource ids, not colours.