react-native-blur icon indicating copy to clipboard operation
react-native-blur copied to clipboard

When use BlurView in Android for example in a card, when navigate these screen put white background in all screen

Open davidgvf opened this issue 1 year ago • 19 comments

davidgvf avatar Sep 04 '23 09:09 davidgvf

Im having the same problem!

ManuViola77 avatar Sep 08 '23 06:09 ManuViola77

me too... please give me the solution

Intellectus-JIHAN avatar Sep 08 '23 08:09 Intellectus-JIHAN

Solved it momentairly with this issue https://github.com/Kureev/react-native-blur/issues/561

matmac avatar Sep 08 '23 10:09 matmac

@matmac not work for me, the solution is put view and into view bLURVIEW?

davidgvf avatar Sep 15 '23 07:09 davidgvf

I detect that when i use position aboslute in blur view, in android when navigate put opacity screen

davidgvf avatar Sep 15 '23 18:09 davidgvf

same here, when users are navigating back then a white overlay covers the entire app, it's totally random

efstathiosntonas avatar Sep 20 '23 05:09 efstathiosntonas

@efstathiosntonas I'm facing the same issue. Are you resolve this?

dattv-unstatic avatar Sep 25 '23 09:09 dattv-unstatic

Hey guys

I'm not sure if this is the case but in your project, if you are using Stack Navigation, try disabling animation https://github.com/Kureev/react-native-blur/issues/461

I set <Stack.Navigator screenOptions={{ animation: 'none' }}>

for only in android, and the issue has gone.

Well this might not be the best solution since I had to give up the animation Effect on Android. But as I understand, there is a problem between BlurView and Navigation animation.

SHYDEV-KR avatar Sep 25 '23 13:09 SHYDEV-KR

Disabling animation on android is actually helped but maybe there is another workaround?

Revolt9k avatar Oct 19 '23 06:10 Revolt9k

Disabling animation on android is actually helped but maybe there is another workaround?

My current workaround is to disable the blur during the transition:

<BlurView enabled={!isTransitioning}>...

simonbothen-radinn avatar Oct 19 '23 06:10 simonbothen-radinn

my current workaround and it's working almost well.

go to this path: node_modules/@react-native-community/blur/src/components/BlurView.android.tsx

const OVERLAY_COLORS = { light: 'rgba(255, 255, 255, 0.0)', // reduce the opacity to 0.0 xlight: 'rgba(255, 255, 255, 0.75)', dark: 'rgba(16, 12, 12, 0.64)', };

MuhammadAamirAg avatar Oct 25 '23 10:10 MuhammadAamirAg

My current workaround is to disable the blur during the transition:

<BlurView enabled={!isTransitioning}>...

Disabling the BlurView before navigation also worked for me. Another janky workaround is to wrap your navigation handler with setTimeout(navigationHandler, 10);

alabsi91 avatar Nov 06 '23 16:11 alabsi91

my current workaround and it's working almost well.

go to this path: node_modules/@react-native-community/blur/src/components/BlurView.android.tsx

const OVERLAY_COLORS = { light: 'rgba(255, 255, 255, 0.0)', // reduce the opacity to 0.0 xlight: 'rgba(255, 255, 255, 0.75)', dark: 'rgba(16, 12, 12, 0.64)', };

It works well, good. And you can use overlayColor={"#00000000"} instead. such as

           <BlurView 
                style={{position:"absolute", height:400, width:100}}
                blurType="light"
                overlayColor={"#00000000"}
                blurAmount={10}
                blurRadius={10}
                reducedTransparencyFallbackColor="white"
                >
            </BlurView>

grassesTop avatar Nov 10 '23 02:11 grassesTop

I Got another resolution.If you want to preserve the animation while using the component, you can wrap the navigate method in setTimeout(() => {}, 0).

ZhengKehang avatar Nov 27 '23 10:11 ZhengKehang

Any updates on this? Seems like a pretty large bug

NicholasBoccuzzi avatar Mar 13 '24 20:03 NicholasBoccuzzi

A (not perfect) workaround is setting blur enabled to false during unmount, which should be done in native code.

diff --git a/node_modules/@react-native-community/blur/android/src/main/java/com/reactnativecommunity/blurview/BlurViewManagerImpl.java b/node_modules/@react-native-community/blur/android/src/main/java/com/reactnativecommunity/blurview/BlurViewManagerImpl.java
index 4444313..6fe3478 100644
--- a/node_modules/@react-native-community/blur/android/src/main/java/com/reactnativecommunity/blurview/BlurViewManagerImpl.java
+++ b/node_modules/@react-native-community/blur/android/src/main/java/com/reactnativecommunity/blurview/BlurViewManagerImpl.java
@@ -29,6 +29,10 @@ class BlurViewManagerImpl {
     return blurView;
   }
 
+  public static void onDropViewInstance(BlurView view) {
+    view.setBlurEnabled(false);
+  }
+
   public static void setRadius(BlurView view, int radius) {
     view.setBlurRadius(radius);
     view.invalidate();
diff --git a/node_modules/@react-native-community/blur/android/src/oldarch/java/com/reactnativecommunity/blurview/BlurViewManager.java b/node_modules/@react-native-community/blur/android/src/oldarch/java/com/reactnativecommunity/blurview/BlurViewManager.java
index 1a28209..74a46f3 100644
--- a/node_modules/@react-native-community/blur/android/src/oldarch/java/com/reactnativecommunity/blurview/BlurViewManager.java
+++ b/node_modules/@react-native-community/blur/android/src/oldarch/java/com/reactnativecommunity/blurview/BlurViewManager.java
@@ -22,6 +22,12 @@ class BlurViewManager extends ViewGroupManager<BlurView> {
     return BlurViewManagerImpl.createViewInstance(context);
   }
 
+  @Override
+  public void onDropViewInstance(BlurView view) {
+    super.onDropViewInstance(view);
+    BlurViewManagerImpl.onDropViewInstance(view);
+  }
+
   @NonNull
   @Override
   public String getName() {

Problem: In a Native Stack Screen of @react-navigation/native-stack, after pressing Android back button, you will find that blur effect disables first, then the screen starts pop animation.

Phecda avatar Apr 12 '24 11:04 Phecda

Hey guys

I'm not sure if this is the case but in your project, if you are using Stack Navigation, try disabling animation #461

I set <Stack.Navigator screenOptions={{ animation: 'none' }}>

for only in android, and the issue has gone.

Well this might not be the best solution since I had to give up the animation Effect on Android. But as I understand, there is a problem between BlurView and Navigation animation.

it is blocking shared transition animation

adsalihac avatar Apr 21 '24 20:04 adsalihac