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

FlashList won't render properly in android. #411

Open
isToThyMoon opened this issue May 26, 2024 · 5 comments · May be fixed by #448
Open

FlashList won't render properly in android. #411

isToThyMoon opened this issue May 26, 2024 · 5 comments · May be fixed by #448
Labels
question Further information is requested

Comments

@isToThyMoon
Copy link

isToThyMoon commented May 26, 2024

I wrote a demo based on the official example. The code is from '/example/src/FlashList.tsx'.

But when i opened it in android simualtor, i got a warning: ' FlashList's rendered size is not usable. Either the height or width is too small (<2px). Please make sure that the parent view of the list has a valid size. FlashList will match the size of the parent.'

And the content area was blank. FlashList was not rendered properly. But it works fine on IOS plantform.
Screenshot_1716728777
I think it maybe the android 'flex:1' problem. So I go to the source code 'src/Container.tsx'.

            <AnimatedPagerView
              ref={containerRef}
              onPageScroll={pageScrollHandler}
              initialPage={index.value}
              {...pagerProps}
              style={[pagerProps?.style, StyleSheet.absoluteFill]}
            >
              {tabNamesArray.map((tabName, i) => {
                return (
                  <View key={i}>
                    <TabNameContext.Provider value={tabName}>
                      <Lazy
                        startMounted={lazy ? undefined : true}
                        cancelLazyFadeIn={!lazy ? true : !!cancelLazyFadeIn}
                        // ensure that we remount the tab if its name changes but the index doesn't
                        key={tabName}
                      >
                        {
                          React.Children.toArray(children)[
                            i
                          ] as React.ReactElement
                        }
                      </Lazy>
                    </TabNameContext.Provider>
                  </View>
                )
              })}
            </AnimatedPagerView>

And find the function tabNamesArray.map() returns the View Component, where the FlashList would be rendered.
But only have key={i} in its props.
If I add style={{ flex: 1}}, it will render FlashList properly.

 <View key={i} style={{ flex: 1}}>
    <TabNameContext.Provider value={tabName}>
      <Lazy
        startMounted={lazy ? undefined : true}
        cancelLazyFadeIn={!lazy ? true : !!cancelLazyFadeIn}
        // ensure that we remount the tab if its name changes but the index doesn't
        key={tabName}
      >
        {
          React.Children.toArray(children)[
            i
          ] as React.ReactElement
        }
      </Lazy>
    </TabNameContext.Provider>
  </View>

Is this a bug or I did not use the Tab.FlashList rightly? all my demo codes are from Example folder.
But some days ago i did not face the problem.

Thanks.

@isToThyMoon isToThyMoon added the question Further information is requested label May 26, 2024
@virendrasingh-tech
Copy link

virendrasingh-tech commented Jul 10, 2024

Adding { flex: 1} really did the trick, thanks.

@chen8520
Copy link

same question

@ursnj
Copy link

ursnj commented Aug 23, 2024

Same issue with my also getting this error in android but working fine in ios, any idea please suggest.

@pangxzi
Copy link

pangxzi commented Sep 29, 2024

Same issue with my also getting this error in android but working fine in ios, any idea please suggest.

+1

@maherzaidoune
Copy link

This patch should help
react-native-collapsible-tab-view+8.0.0.patch

maherzaidoune added a commit to maherzaidoune/react-native-collapsible-tab-view that referenced this issue Oct 3, 2024
@maherzaidoune maherzaidoune linked a pull request Oct 3, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants