RNMain.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import React from 'react';
  2. import { NavigationContainer } from '@react-navigation/native';
  3. import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
  4. import { createStackNavigator } from '@react-navigation/stack';
  5. import Clock from '../clock/Clock.weapp'
  6. import Metric from '../metric/Metric'
  7. import Workout from '../workout/Workout'
  8. import Profile from '../account/Profile'
  9. import ChooseAuth from '@/pages/account/ChooseAuth'
  10. import Auth from '@/pages/account/Auth'
  11. import Setting from '@/pages/account/Setting'
  12. import DemoA from '../clock/demoA';
  13. import { View } from '@tarojs/components';
  14. // 创建底部 Tab 导航器
  15. const Tab = createBottomTabNavigator();
  16. // 创建堆栈导航器
  17. const Stack = createStackNavigator();
  18. /*
  19. // 创建 A 页面的堆栈导航器
  20. const AStack = () => {
  21. return (
  22. <Stack.Navigator>
  23. <Stack.Screen name="A" component={AScreen} />
  24. <Stack.Screen name="C" component={CScreen} options={{ tabBarVisible: true }} />
  25. </Stack.Navigator>
  26. );
  27. };
  28. // 创建 B 页面的堆栈导航器
  29. const BStack = () => {
  30. return (
  31. <Stack.Navigator>
  32. <Stack.Screen name="B" component={BScreen} />
  33. <Stack.Screen name="D" component={DScreen} options={{ tabBarVisible: false }} />
  34. </Stack.Navigator>
  35. );
  36. };
  37. const App: React.FC = () => {
  38. return (
  39. <NavigationContainer>
  40. <Tab.Navigator>
  41. <Tab.Screen name="A" component={AStack} />
  42. <Tab.Screen name="B" component={BStack} />
  43. </Tab.Navigator>
  44. </NavigationContainer>
  45. );
  46. };
  47. */
  48. export default function RNMain() {
  49. const ClockPage = ()=> <Clock />
  50. const MetricPage = ()=> <Metric />
  51. const WorkoutPage = ()=> <Workout />
  52. const ProfilePage = ()=> <Profile />
  53. const DemoPage = ()=><DemoA/>
  54. function tabNavigator() {
  55. return (
  56. <Tab.Navigator screenOptions={({ route }) => ({
  57. headerStyle: {
  58. backgroundColor: 'black',
  59. borderBottomWidth: 0, // 隐藏导航条底部边框
  60. },
  61. headerTintColor: 'white',
  62. tabBarStyle: { backgroundColor: 'black' }, // tabbar的背景色
  63. tabBarActiveTintColor: 'white', // 活动标签的颜色
  64. tabBarInactiveTintColor: 'gray', // 非活动标签的颜色
  65. })}>
  66. <Tab.Screen name="Clock" component={ClockPage} />
  67. {/* <Tab.Screen name="Demo" component={DemoPage} /> */}
  68. <Tab.Screen name="Metric" component={MetricPage} />
  69. <Tab.Screen name="Activity" component={WorkoutPage}/>
  70. <Tab.Screen name="Profile" component={ProfilePage} />
  71. </Tab.Navigator>
  72. )
  73. }
  74. return (
  75. <NavigationContainer theme={{
  76. dark: false,
  77. colors: {
  78. text: 'white',
  79. primary: 'white',
  80. card: 'white',
  81. border: 'transparent',
  82. background: 'black',
  83. notification: 'red'
  84. }
  85. }}>
  86. <Stack.Navigator screenOptions={({ route }) => ({
  87. headerStyle: {
  88. backgroundColor: 'black',
  89. borderBottomWidth: 0, // 隐藏导航条底部边框
  90. borderBottomColor:'red'
  91. },
  92. headerTintColor: 'white',
  93. tabBarStyle: { backgroundColor: 'black' }, // tabbar的背景色
  94. tabBarActiveTintColor: 'white', // 活动标签的颜色
  95. tabBarInactiveTintColor: 'gray', // 非活动标签的颜色
  96. })}>
  97. <Stack.Screen name='Main' component={tabNavigator} options={{ headerShown: false }}/>
  98. <Stack.Screen name='ChooseAuth' component={ChooseAuth} />
  99. <Stack.Screen name='Auth' component={Auth} />
  100. <Stack.Screen name='Setting' component={Setting} />
  101. </Stack.Navigator>
  102. </NavigationContainer>
  103. )
  104. }