Skip to content

Commit ab1a58a

Browse files
fix(android): override RN edge-to-edge nav bar contrast enforcement
React Native 0.84's enableEdgeToEdge() sets isNavigationBarContrastEnforced to true, causing a white scrim on the nav bar (visible on Xiaomi/HyperOS). Override it after super.onCreate() to ensure transparent nav bar on all build variants. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b44d5f3 commit ab1a58a

File tree

1 file changed

+11
-0
lines changed
  • wallets/rn_cli_wallet/android/app/src/main/java/com/walletconnect/web3wallet/rnsample

1 file changed

+11
-0
lines changed

wallets/rn_cli_wallet/android/app/src/main/java/com/walletconnect/web3wallet/rnsample/MainActivity.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import com.facebook.react.ReactActivity
44
import com.facebook.react.ReactActivityDelegate
55
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
66
import com.facebook.react.defaults.DefaultReactActivityDelegate
7+
import android.graphics.Color
8+
import android.os.Build
79
import android.os.Bundle
10+
import androidx.core.view.WindowCompat
811
import com.zoontek.rnbootsplash.RNBootSplash
912

1013
class MainActivity : ReactActivity() {
@@ -25,5 +28,13 @@ class MainActivity : ReactActivity() {
2528
override fun onCreate(savedInstanceState: Bundle?) {
2629
RNBootSplash.init(this, R.style.BootTheme) // ⬅️ initialize the splash screen
2730
super.onCreate(savedInstanceState)
31+
32+
// Enable edge-to-edge and set transparent nav/status bars for all build variants
33+
WindowCompat.setDecorFitsSystemWindows(window, false)
34+
window.statusBarColor = Color.TRANSPARENT
35+
window.navigationBarColor = Color.TRANSPARENT
36+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
37+
window.isNavigationBarContrastEnforced = false
38+
}
2839
}
2940
}

0 commit comments

Comments
 (0)