Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Material Top Tabs] The tab bar UI doesn't update when navigate to a tab of the navigator from an external screen #872

Open
4 of 11 tasks
vicprz opened this issue Aug 28, 2024 · 4 comments
Assignees

Comments

@vicprz
Copy link

vicprz commented Aug 28, 2024

This issue is a duplicate of an issue opened on React Navigation repo, but a contributor suggests me to also post an issue on this repo as react-native-pager-view is a dependency of @react-navigation/material-top-tabs and the issue seems related to react-native-pager-view.
Thanks for your help 🙂

Environment

Platform

  • Android
  • iOS
  • Web
  • Windows
  • MacOS

Packages

  • @react-navigation/bottom-tabs
  • @react-navigation/drawer
  • @react-navigation/material-top-tabs
  • @react-navigation/stack
  • @react-navigation/native-stack
  • react-native-tab-view

✅ I've removed the packages that I don't use

package version
@react-navigation/native 6.1.18
@react-navigation/bottom-tabs 6.6.1
@react-navigation/material-top-tabs 6.6.14
@react-navigation/native-stack 6.11.0
react-native-safe-area-context 4.10.9
react-native-screens 3.34.0
react-native-tab-view 3.5.2
react-native-pager-view 6.4.0
react-native 0.75.2
node 20.10.0
npm 10.8.1

Description

Current behavior

Context

My application has a bottom bar, managed by @react-navigation/bottom-tabs, which manages two screens:

  • A Home screen, which includes text and a button
  • A Video screen, which is a @react-navigation/material-top-tabs that also manages two screens (text only):
    • In the first position, Shorts
    • In the second position, Replays

Problem

✅ If I navigate to Replays by tapping on Videos in the bottom tab and then on Replays in the material top tabs, everything works correctly.

🔴 If I navigate to Replays by clicking on the "Go to replays" Home screen button (and whose onPress is navigate(‘Videos’, {screen: ‘Replays’})), it navigates to the replays screen, but the TabBarIndicator isn't in the right position (it stays below Shorts instead of below Replays) and the bold title is Shorts and not Replays. What's more, the bug is random and occurs 1 time out of 2.
Yet, if i tap on Shorts, I navigate to the Shorts screen: I think that the state of the navigation is correctly managed, and that the problem is related to the animation of the material top tab, but maybe I'm wrong 😅.

A video is linked below to help you to better visualise my problem.

I've also realised that if, when I launch my app, I first go to the Videos tab, go back to Home and click on my button, I don't get a bug. The bug only occurs when I click on the Home button without having first clicked on the Videos tab.

What I've tried

I generated a reproducible minimal example, by creating a new React Native app.
The code for my minimal example is available on a Snack linked below.
The bug occurs on iOS on the Snack, but it occurs with both iOS and Android when I use my own simulators. With Snack, I have something weird with Android (touching the "Go to Replays" button goes to Shorts Screens sometimes 😅)

Simulator.Screen.Recording.-.iPhone.15.Pro.Max.-.2024-08-27.at.15.34.24.mp4

Expected behavior

When I tap the "Go to Replays" button of the Home Page, the tab bar indicator is under the "Replays" title, and this title is bold.

Reproducible Demo

https://snack.expo.dev/@victorpe/bug-top-tab?platform=ios

@troZee
Copy link
Member

troZee commented Aug 29, 2024

@vicprz could you check and confirm, if it is the same issue react-navigation/react-navigation#10932 ?

@vicprz
Copy link
Author

vicprz commented Aug 29, 2024

No, it's not the same issue 😉

In react-navigation/react-navigation#10932, there are two problems, that only occur on iOS:

  • a problem of extra blank space
  • the indicator of the Material Top Bar is not moving when navigating to another screen from inside the navigator.

In my issue, the problem occurs on both iOS and Android:

  • When navigating to another screen from inside the Material Top Tab navigator, everything is working well. ✅
  • When navigating from outside the navigator to a screen which is not the initial route of the navigator, the indicator doesn't update its position 1 time out of 2. 🔴

@draggie draggie self-assigned this Aug 29, 2024
@troZee
Copy link
Member

troZee commented Sep 2, 2024

Thank you for the explanation 🙏

@vicprz
Copy link
Author

vicprz commented Oct 3, 2024

Hi! Do you have any news on this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants