gpt4 book ai didi

react-native - React Navigation Top Bar 获得相同的高度(NOT)依赖于它自己的组件

转载 作者:行者123 更新时间:2023-12-04 17:29:15 26 4
gpt4 key购买 nike

看着这个example来自 React Navigation 网站,在 Chat 和 Contacts 之间,高度是相互独立的。但是,当我尝试实现顶栏时,高度是相同的。它采用其中包含最多内容的选项卡的高度。

但在示例中,您可以看到在“联系人”中可能有更多联系人可以在其中滚动,而在“聊天”中,输入字段位于底部,使其看起来像是它停止的地方。

这是示例的屏幕截图:

聊天选项卡

enter image description here

联系人选项卡

enter image description here

这是我的一些代码和我遇到的情况:

<View style={{backgroundColor: 'orange'}}>
{!loading &&
!loadingProfileInfo &&
typeof data.infoByUser !== 'undefined' && (
<FlatList
data={data.infoByUser}
ListHeaderComponent={
<View>
<UserInfo />

<Tab.Navigator>
<Tab.Screen
name="Test"
component={TestComponent} />
<Tab.Screen
name="New Tab"
component={NewTabComponent}
/>
</Tab.Navigator>
</View>
}
numColumns={2}
renderItem={({item}) => (
<View>
// ...
</View>
)}
keyExtractor={item => item._id}
/>
)}
</View>

测试组件

<View style={{backgroundColor: 'grey'}}>
<View>
<Text>Test Test</Text>
</View>
<View>
<Text>Test Test</Text>
</View>
<View>
<Text>Test Test</Text>
</View>
<View>
<Text>Test Test</Text>
</View>
<View>
<Text>Test Test</Text>
</View>
</View>

新标签组件

<View style={{backgroundColor: 'red'}}>
<Text>new tab</Text>
</View>

enter image description here enter image description here

请注意新标签如何在红色和橙色之间有很大的差距,这是从测试标签的高度开始的。

最佳答案

您正在将整个导航器呈现为 FlatList“标题”。您甚至不应该在此组件中使用 Flatlist。每个屏幕都有不同数量的项目,并且应该有自己的 Flatlist。

解决这个问题:

  • 从您的主要组件中移除 FlatList(使用 backgroundColor: 'orange'),并仅在该渲染函数中渲染 Tab Navigator。

  • 在 TestComponent 和 NewTabComponent 内部,如果需要,渲染一个 ScrollView(或 FlatList)。

  • 所有屏幕(TestComponent 和 NewTabComponent)都应该有一个 height: '100%'flex: 1 如果你想让所有屏幕都占满屏幕空间,即使其实际高度小于屏幕高度。

关于react-native - React Navigation Top Bar 获得相同的高度(NOT)依赖于它自己的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61158682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com