Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android SystemUI glitches in Lollipop

Tags:

This bug only occurs on my Nexus 5 and my Nexus 7 running Lollipop.

EDIT

This bug also occurs in the new Inbox app by Google, when I'm going into Inbox > Settings > Notifications > any item and go back...

/EDIT

  • compileSdkVersion 21
  • buildToolsVersion 21.1.1
  • compile 'com.android.support:appcompat-v7:21.0.2'

I'm having a GalleryActivity that shows multiple images, once per page (inside a ViewPager. When I hit the back button, sometimes the Android's SystemUI have glitches.

Normal view

normal

Glitched view

glitched

See how the views repeats themselves, and inside the system itself?

A simple touch event brings back the normal SystemUI views.

What is going on?

Might be similar to:

  • Android 5 screen glitch/static with Google Maps Fragment inside a Viewpager
  • Android Lollipop Activity Screen corrupted
like image 951
shkschneider Avatar asked Nov 27 '14 13:11

shkschneider


2 Answers

Setting android:hardwareAccelerated="false" is a kind of extreme solution, as graphical performance is likely to be very bad.

If you can pinpoint the view that is misbehaving and causing this issue, a better fix would be to switch it to software rendering instead, via setLayerType(), e.g.

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Funny thing is, I haven't experienced any rendering glitches with Lollipop so far, but we did see them in KITKAT (as mentioned in this question), and only when WebViews are present on the screen.

I would recommend experimenting with toggling this on different views until the problem is isolated (especially if it's easy to reproduce).


So far, every occurence of this issue has been related to WebViews (or components that use WebView, such as AdMob). According to the AOSP Issue Tracker the problem is fixed in Android 5.0, but it doesn't seem to be the case.

like image 186
matiash Avatar answered Nov 07 '22 23:11

matiash


I've seen UI glitches with Lollipop, though different than yours. The only workaround I found was disabling hardware acceleration:

android:hardwareAccelerated="false"

at the Activity or Application level. If this resolves your glitches, make sure to report this to Google as this would indicate a bug in the platform. There is already at least one open report with them already.

I certainly wouldn't want to deploy an application with this setting, it's really only intended to answer the WHY and help prove that it's not a bug in your code.

Hope this helps!

EDIT 12/10/2014:

@matiash offered a much more precise answer than this "sledgehammer" suggestion. I was seeing drawing glitches mostly on the ActionBar in a multi-tab app with ViewPager, and always on tabs/pages without any WebView at all. However, one of my tabs/fragments does have an embedded WebView, and when setting it to software rendering, my glitches appear to have gone away. I'm not at all uncomfortable putting the workaround suggested by @matiash in a shipping app...though it still points to some underlying issue in the platform.

like image 42
CSmith Avatar answered Nov 07 '22 21:11

CSmith