On some devices like the Nexus 7 or Samsung Galaxy Nexus (possibly others), I noticed this issue (See picture). This is running on Hardware Acceleration Mode in a WebView. H
This is a race-condition bug in WebView. Where the rendering of the page becomes out of sync with the actual view of the page.
The normal cause is because you are handling rotation with android:configChanges in your tag in the AndroidManifest.xml file. Recreating the WebView on rotation will resolve this issue, but this itself has other problems attached to it.
Their are two solutions I know of. I would not recommend you keep using android:configChanges as its usually detrimental if you don't really know what this change means to your application. If you absolutely need to keep the android:configChanges, there is a solution. You can create your own custom View which inherits from a WebView. Simply override onConfigurationChanged and don't forward it on to the super class.. in this case that's the WebView. I have included code below as an example of this.
But the more truer and correct approach is to correct handle the saving and restoring of the WebView's state. If you hunt around online you will find a multitude of solutions for this problem. Here is a particually good one. http://www.devahead.com/blog/2012/01/preserving-the-state-of-an-android-webview-on-screen-orientation-change/
import android.content.Context;
import android.content.res.Configuration;
import android.util.AttributeSet;
import android.webkit.WebView;
public class MyWebView extends WebView
{
public MyWebView(Context context)
{
super(context);
}
public MyWebView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public MyWebView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
protected void onConfigurationChanged(Configuration newConfig)
{
// NOTE: We don't want to call this
// super.onConfigurationChanged(newConfig);
}
}