RNMain.tsx 3.3 KB

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