react-navigation 5.x实现安卓下页面的左右切换

react-navigation 5.x实现安卓下的左右切换
  • 直接看代码吧:
import 'react-native-gesture-handler';

import React from 'react';
import { View, Text, StyleSheet, TouchableNativeFeedback } from 'react-native'

// react-navigation
import { NavigationContainer } from '@react-navigation/native'
import { createStackNavigator, CardStyleInterpolators } from '@react-navigation/stack'

// Stack
const Stack = createStackNavigator()

// styles
const styles = StyleSheet.create({
  box: {
    flex: 1,
    display: 'flex',
    justifyContent: 'center',
    alignItems: 'center'
  },
  boxText: {
    color: 'skyblue',
    fontSize: 20
  },
  button: {
    width: 200,
    height: 40,
    display: 'flex',
    justifyContent: 'center',
    alignItems: 'center',
    marginTop: 20,
    borderRadius: 20,
    backgroundColor: 'skyblue'
  },
  buttonText: {
    color: '#fff'
  }
})

// Stack Components
function HomeScreen({ navigation }){
  return (
    <View style={styles.box}>
      <Text style={styles.boxText}>React Native App</Text>
      <TouchableNativeFeedback 
        onPress={()=>navigation.navigate('Settings')}
      >
        <View style={styles.button}>
          <Text style={styles.buttonText}>Go To Settings</Text>
        </View>
      </TouchableNativeFeedback>
    </View>
  )
}
function SettingsScreen({ navigation }){
  return (
    <View style={styles.box}>
      <Text style={styles.boxText}>Welcome To Settings</Text>
      <TouchableNativeFeedback 
        onPress={()=>navigation.goBack()}
      >
        <View style={styles.button}>
          <Text style={styles.buttonText}>Go Back To Home</Text>
        </View>
      </TouchableNativeFeedback>
    </View>
  )
}
// HomeStack
function HomeStack(){
  return (
    <Stack.Navigator 
      initialRouteName='Home' 
      screenOptions={{
      	// 添加这一行会实现安卓下页面的左右切换,默认是从下到上
        cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS
      }}
    >
      <Stack.Screen name='Home' component={HomeScreen}></Stack.Screen>
      <Stack.Screen name='Settings' component={SettingsScreen}></Stack.Screen>
    </Stack.Navigator>
  )
}

export default function App(){
  return (
    <NavigationContainer>
      <HomeStack></HomeStack>
    </NavigationContainer>
  )
}

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值