This commit is contained in:
oneao committed 2025-10-22 17:31:54 +08:00
1 parent 785cc946d2
commit 94983ed1ea
8 files changed
+1432 -1086

No files matched your search

+2 -2
View File
@@ -20,14 +20,14 @@
},
"edgeToEdgeEnabled": true,
"predictiveBackGestureEnabled": false,
"package": "com.anonymous.myapp"
"package": "com.oneao.myapp"
},
"web": {
"output": "static",
"favicon": "./assets/images/favicon.png"
},
"plugins": [
"./plugins/withAndroidSignature",
"./plugins/withAndroidSignature",
"expo-router",
[
"expo-splash-screen",
+1 -1
View File
@@ -3,7 +3,7 @@
"keystore": {
"keystorePath": "credentials/android-release.keystore",
"keystorePassword": "123456",
"keyAlias": "my-key-alias",
"keyAlias": " my-key-alias",
"keyPassword": "123456"
}
},
Binary file not shown.
+1054 -1054
View File
File diff suppressed because it is too large. Load diff
+9 -9
View File
@@ -15,8 +15,8 @@
"@react-navigation/bottom-tabs": "^7.4.0",
"@react-navigation/elements": "^2.6.3",
"@react-navigation/native": "^7.1.8",
"expo": "~54.0.15",
"expo-constants": "~18.0.9",
"expo": "~54.0.18",
"expo-constants": "~18.0.10",
"expo-font": "~14.0.9",
"expo-haptics": "~15.0.7",
"expo-image": "~3.0.10",
@@ -25,23 +25,23 @@
"expo-splash-screen": "~31.0.10",
"expo-status-bar": "~3.0.8",
"expo-symbols": "~1.0.7",
"expo-system-ui": "~6.0.7",
"expo-system-ui": "~6.0.8",
"expo-web-browser": "~15.0.8",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-native": "0.81.4",
"react-native": "0.81.5",
"react-native-gesture-handler": "~2.28.0",
"react-native-worklets": "0.5.1",
"react-native-reanimated": "~4.1.1",
"react-native-safe-area-context": "^5.6.1",
"react-native-safe-area-context": "~5.6.0",
"react-native-screens": "~4.16.0",
"react-native-web": "~0.21.0",
"react-native-worklets": "0.5.1"
"react-native-web": "~0.21.0"
},
"devDependencies": {
"@types/react": "~19.1.0",
"typescript": "~5.9.2",
"eslint": "^9.25.0",
"eslint-config-expo": "~10.0.0",
"typescript": "~5.9.2"
"eslint-config-expo": "~10.0.0"
},
"private": true
}
@@ -1,3 +1,5 @@
// plugins/withAndroidSignature.js
const { withAppBuildGradle } = require("@expo/config-plugins");
const fs = require("fs");
const path = require("path");
+94
View File
@@ -0,0 +1,94 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>App TabBar</title>
<style>
body {
margin: 0;
font-family: 'Arial', sans-serif;
background: #f5f5f5;
display: flex;
flex-direction: column;
height: 100vh;
justify-content: flex-end; /* 保证TabBar在底部 */
}
/* TabBar 容器 */
.tabbar {
width: 100%;
height: 60px;
background: #fff;
border-top-left-radius: 15px;
border-top-right-radius: 15px;
display: flex;
justify-content: space-around;
align-items: center;
box-shadow: 0 -2px 10px rgba(0,0,0,0.05); /* 轻微阴影 */
border-top: 1px solid #eee;
}
/* Tab 按钮 */
.tab {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #999;
font-size: 12px;
text-decoration: none;
position: relative;
transition: color 0.3s ease;
flex: 1; /* 平均分布 */
padding-top: 5px;
}
.tab svg {
width: 24px;
height: 24px;
margin-bottom: 3px;
transition: all 0.3s ease;
}
/* 高亮效果 */
.tab.active {
color: #2575fc; /* 选中颜色 */
}
.tab.active svg {
transform: scale(1.2);
fill: #2575fc;
}
/* 可选:添加底部小圆点高亮 */
.tab.active::after {
content: '';
position: absolute;
bottom: 5px;
width: 6px;
height: 6px;
background: #2575fc;
border-radius: 50%;
}
</style>
</head>
<body>
<div class="tabbar">
<a href="#" class="tab active">
<svg fill="currentColor" viewBox="0 0 24 24"><path d="M12 2L2 12h3v8h6v-6h2v6h6v-8h3z"/></svg>
首页
</a>
<a href="#" class="tab">
<svg fill="currentColor" viewBox="0 0 24 24"><path d="M12 12c2.21 0 4-1.79 4-4S14.21 4 12 4 8 5.79 8 8s1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
我的
</a>
<a href="#" class="tab">
<svg fill="currentColor" viewBox="0 0 24 24"><path d="M3 6h18v2H3zM3 12h18v2H3zM3 18h18v2H3z"/></svg>
菜单
</a>
</div>
</body>
</html>