skydoves / PowerMenu

:fire: Powerful and modernized popup menu with fully customizable animations.
Apache License 2.0
1.19k stars 175 forks source link

Background issue in full-screen mode #53

Closed IhorKlimov closed 4 years ago

IhorKlimov commented 5 years ago

Please complete the following information:

Describe the Bug:

When app is in a full-screen mode (no navigation bar and status bar is shown), background scrim of PowerMenu is not shown in full screen, but stops vertically at the point where bottom Android navigation bar would start normally, leaving bottom part of a screen without PowerMenu background

Expected Behavior:

Background should be drawn in full-screen

skydoves commented 4 years ago

@IhorKlimov Hi, sorry for the late reply. It is hard to implement the behavior. Could you explain with more details?

ssaqua commented 4 years ago

👋 @skydoves

I'd like to submit a PR for this.

Here's some more info to reproduce @IhorKlimov 's problem.

In the demo app MainActivity if we make some adjustments to the system UI visibility:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
+ int visibility = View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                | View.SYSTEM_UI_FLAG_FULLSCREEN
+                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
+ getWindow().getDecorView().setSystemUiVisibility(visibility);
  setContentView(R.layout.activity_main);

  ...
}

(Not all visibility flags will be a problem, I think it's mainly when SYSTEM_UI_FLAG_LAYOUT_STABLE is used).

Then we end up with background view being like:

What do you think about adding setBackgroundSystemUiVisibility(int visibility) as an option on the builder? Please see PR #56 😃