- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 React Native 0.62
是否可以在滚动时隐藏使用 createBottomTabNavigator
创建的标签栏?来自 reactnavigation.org ?
我很好奇是否有可能以类似于 LinkedIn 的方式,当您向下滚动页面时,标签栏会消失,而当您向上滚动时,它会重新出现。还是只能使用自定义标签栏?
最佳答案
是的,可以隐藏底部标签栏。
自定义和默认标签栏都可以
我们可以使用 tabBarVisible隐藏和显示选项。我们可以使用 onScroll 和 inside on scroll 我们可以使用 dispatch显示和隐藏
这是演示:https://snack.expo.io/@nomi9995/tab-navigation-%7C-bottom-tab-hide
const getTabBarVisible = (route) => {
const params = route.params;
if (params) {
if (params.tabBarVisible === false) {
return false;
}
}
return true;
};
<Tab.Screen
name="Home"
component={HomeScreen}
options={({ route }) => ({
tabBarVisible: getTabBarVisible(route),
})}
/>
import * as React from "react";
import { Text, View, ScrollView, Dimensions } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { CommonActions } from "@react-navigation/native";
const height = Dimensions.get("window").height;
const width = Dimensions.get("window").width;
class HomeScreen extends React.Component {
offset = 0;
onScrollHandler = (e) => {
const currentOffset = e.nativeEvent.contentOffset.y;
var direction = currentOffset > this.offset ? "down" : "up";
this.offset = currentOffset;
if (direction === "down") {
this.props.navigation.dispatch(
CommonActions.setParams({
tabBarVisible: false,
})
);
} else {
this.props.navigation.dispatch(
CommonActions.setParams({
tabBarVisible: true,
})
);
}
};
render() {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<ScrollView
showsVerticalScrollIndicator={false}
scrollEventThrottle={16}
onScroll={this.onScrollHandler}
>
<View
style={{
alignItems: "center",
height: height * 2,
width: width,
backgroundColor: "red",
}}
>
<View
style={{
backgroundColor: "blue",
width: 100,
height: height * 2,
}}
/>
</View>
</ScrollView>
</View>
);
}
}
function SettingsScreen() {
return (
<View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
<Text>Settings!</Text>
</View>
);
}
const Tab = createBottomTabNavigator();
const getTabBarVisible = (route) => {
const params = route.params;
if (params) {
if (params.tabBarVisible === false) {
return false;
}
}
return true;
};
class MyTabs extends React.Component {
render() {
return (
<Tab.Navigator>
<Tab.Screen
name="Home"
component={HomeScreen}
options={({ route }) => ({
tabBarVisible: getTabBarVisible(route),
})}
/>
<Tab.Screen name="Settings" component={SettingsScreen} />
</Tab.Navigator>
);
}
}
export default function App() {
return (
<NavigationContainer>
<MyTabs />
</NavigationContainer>
);
}
关于react-native - 在 React Native 中隐藏 createBottomTabNavigator 标签栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62095915/
大家好,我在 React Native 中使用 createbottomtabnavigator,但是,底部选项卡在所有屏幕上都不可见,我在互联网上进行了搜索,但似乎找不到任何解决方案。我希望能够在除
我在 Expo 上收到一条错误消息,内容是“createBottomTabNavigator()”已移至“react-navigation-tabs”。详情请见http........ 我已经完成 n
我正在通过克隆 Instagram 来学习 react-native。 有什么方法可以将 transitionConfig 应用于 createBottomTabNavigator(react-nav
在我的 BottomTabNavigator 中,我有一个概述选项卡。当我单击它时,它会显示概述选项卡的初始路线。从这里,我可以点击查看更多详细信息。这将路由到不同的屏幕。我们称之为 (B) 我的问题
在我的 BottomTabNavigator 中,我有一个概述选项卡。当我单击它时,它会显示概述选项卡的初始路线。从这里,我可以点击查看更多详细信息。这将路由到不同的屏幕。我们称之为 (B) 我的问题
我正在为我的项目使用 React Native Navigation v2。我正在尝试使用 createBottomTabNavigator 设置两个不同的 IonIcons。 他们的 site举个这
我一直在尝试为标签栏获取背景图片。我尝试使用 tabBarComponent 但它隐藏了它下面的选项卡。 我使用的代码是 export default MainNavigation = crea
尝试了很多方法,都没有找到很好的嵌套createDrawerNavigator createBottomTabNavigator createStackNavigator的方案 现在 抽屉(creat
场景: 我有一个应用程序,可使用三个导航选项卡(学校、管理员、家庭); 我现在正在尝试添加其他屏幕,这些屏幕不会有相应的选项卡。这些屏幕将使用类似 this.props.navigation.navi
我正在尝试在其中一个选项卡上创建一个带有 createMaterialTopTabNavigator 的 createBottomTabNavigator 。它告诉我路由“TopTabs”的组件必须是
您好,我正在使用 expo 制作一个 React Native 应用程序。以下是我的 app.js 文件: import React from 'react'; import { StyleSheet
我正在使用 Expo 构建一个应用程序,我希望在用户首次打开该应用程序时有一个欢迎屏幕。我需要在“欢迎”和“授权”屏幕导航到“ map ”屏幕后隐藏标签栏。 通过 react-navigation 中
自从我更新了 react-navigation(从 v2 到 v3)后,我在 createBottomTabNavigator 中的图标不再出现在标签上方。当我查看文档时,我找不到解决方案。你能帮帮我
带有版本的 React-native 应用程序: react@16.9.0 react-native@0.61.2 react-navigation@^4.0.10 react-navigation-
当前代码 应用程序.js import React from 'react'; import {NavigationContainer} from '@react-navigation/native'
error image simulator 我是 React-Native 开发的新手,实际上正在观看克隆 Instagram 应用程序的教程视频。但似乎这个人正在使用旧的 react native
我正在为标签栏使用 createBottomTabNavigator。 我可以通过将 tabBarVisible 属性设置为 true 或 false 来隐藏和显示标签栏。 我的问题是,我希望它用动画
我的应用程序有几个使用 createBottomTabNavigator 创建的选项卡,每个选项卡都包含一些屏幕。我正在尝试实现以下目标:当用户单击选项卡时,我希望我的应用程序呈现该选项卡的第一个/主
我在 StackNavigator 中使用 TabNavigator,我能够将 Prop 从 StackNavigator 传递给 TabNavigator,它有四个选项卡。 其中一个名为配置文件的选
React Navigation v3 Modal 不适用于 createBottomTabNavigator 并且不确定原因。但是,headerMode: 'none' 似乎可以正常工作,但 mod
我是一名优秀的程序员,十分优秀!