我正在使用 React Navigation 在我的应用程序中创建选项卡导航器,我想要做的是当用户向下滚动时隐藏该选项卡栏,并在用户再次滚动到顶部时将其重新带回来,是否有任何跨平台解决方案?
参考应用程序是Linkedin
小智 6
我已经实现了显示/隐藏底部选项卡栏的组件。根据滚动方向参数showTabBar
设置。
export default class ScrollTab extends React.Component {
onScroll = (event) => {
const { navigation } = this.props;
const currentOffset = event.nativeEvent.contentOffset.y;
const dif = currentOffset - (this.offset || 0);
if (dif < 0) {
navigation.setParams({ showTabBar: true });
} else {
navigation.setParams({ showTabBar: false });
}
//console.log('dif=',dif);
this.offset = currentOffset;
}
render () {
return (
<ScrollView onScroll={(e) => this.onScroll(e)}>
{this.props.children}
</ScrollView>
);
}
}
Run Code Online (Sandbox Code Playgroud)
然后navigationOptions
可以tabBarVisible
根据showTabBar
参数更改属性。
const isTabBarVisible = (navState) => {
if (!navState) {
return true;
}
let tabBarVisible = navState.routes[navState.index].params ? navState.routes[navState.index].params.showTabBar : true;
return tabBarVisible;
}
const MessagesStack = createStackNavigator(
{
Messages: MessagesScreen,
},
config
);
MessagesStack.navigationOptions = ({ navigation }) => {
return {
tabBarLabel: 'Messages',
tabBarVisible: isTabBarVisible(navigation.state)
}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16761 次 |
最近记录: |