From a6ec01f21c9dce3284fc2afb5e0b9fcf54f3219d Mon Sep 17 00:00:00 2001 From: zhangjiming Date: Sat, 15 Mar 2025 14:43:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2Tab=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(tabs)/_layout.tsx | 34 +++++++++++++++++++++++++++++----- assets/images/tab/icon_tab1_s.png | Bin 0 -> 1114 bytes assets/images/tab/icon_tab1_s.svg | 1 + assets/images/tab/icon_tab1_u.png | Bin 0 -> 1163 bytes assets/images/tab/icon_tab1_u.svg | 1 + assets/images/tab/icon_tab2_s.png | Bin 0 -> 1122 bytes assets/images/tab/icon_tab2_u.png | Bin 0 -> 1093 bytes assets/images/tab/icon_tab3_s.png | Bin 0 -> 1027 bytes assets/images/tab/icon_tab3_u.png | Bin 0 -> 964 bytes assets/images/tab/icon_tab4_s.png | Bin 0 -> 897 bytes assets/images/tab/icon_tab4_u.png | Bin 0 -> 889 bytes constants/Colors.ts | 2 +- custom.d.ts | 4 ++++ tsconfig.json | 11 ++--------- 14 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 assets/images/tab/icon_tab1_s.png create mode 100644 assets/images/tab/icon_tab1_s.svg create mode 100644 assets/images/tab/icon_tab1_u.png create mode 100644 assets/images/tab/icon_tab1_u.svg create mode 100644 assets/images/tab/icon_tab2_s.png create mode 100644 assets/images/tab/icon_tab2_u.png create mode 100644 assets/images/tab/icon_tab3_s.png create mode 100644 assets/images/tab/icon_tab3_u.png create mode 100644 assets/images/tab/icon_tab4_s.png create mode 100644 assets/images/tab/icon_tab4_u.png create mode 100644 custom.d.ts diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx index a3c88bf..7572c26 100644 --- a/app/(tabs)/_layout.tsx +++ b/app/(tabs)/_layout.tsx @@ -1,6 +1,6 @@ import { Tabs } from 'expo-router'; import React from 'react'; -import { Platform } from 'react-native'; +import { Platform, View, Image, StyleSheet } from 'react-native'; import { HapticTab } from '@/components/HapticTab'; import { IconSymbol } from '@/components/ui/IconSymbol'; @@ -8,6 +8,15 @@ import TabBarBackground from '@/components/ui/TabBarBackground'; import { Colors } from '@/constants/Colors'; import { useColorScheme } from '@/hooks/useColorScheme'; +const icon_tab1_s = require('@/assets/images/tab/icon_tab1_s.png'); +const icon_tab1_u = require('@/assets/images/tab/icon_tab1_u.png'); +const icon_tab2_s = require('@/assets/images/tab/icon_tab2_s.png'); +const icon_tab2_u = require('@/assets/images/tab/icon_tab2_u.png'); +const icon_tab3_s = require('@/assets/images/tab/icon_tab3_s.png'); +const icon_tab3_u = require('@/assets/images/tab/icon_tab3_u.png'); +const icon_tab4_s = require('@/assets/images/tab/icon_tab4_s.png'); +const icon_tab4_u = require('@/assets/images/tab/icon_tab4_u.png'); + export default function TabLayout() { const colorScheme = useColorScheme(); @@ -30,30 +39,45 @@ export default function TabLayout() { name="index" options={{ title: '测量', - tabBarIcon: ({ color }) => , + tabBarIcon: ({ focused }) => ( + + ), }} /> , + tabBarIcon: ({ focused }) => ( + + ), }} /> , + tabBarIcon: ({ focused }) => ( + + ), }} /> , + tabBarIcon: ({ focused }) => ( + + ), }} /> ); } + +const styles = StyleSheet.create({ + tabIcon: { + width: 22, + height: 22, + }, +}); diff --git a/assets/images/tab/icon_tab1_s.png b/assets/images/tab/icon_tab1_s.png new file mode 100644 index 0000000000000000000000000000000000000000..4a97d639ac466a1801c8af865f4d0830ffd1a048 GIT binary patch literal 1114 zcmV-g1f~0lP)Px#1am@3R0s$N2z&@+hyVZt1W80eR9J=0*-didMid9||7&5dxxpw0Ff>&5F(-)U z1d*!-ie2mz7)~(u&IPW5oM1dBKnF;WU@pK7qIGQPWg#Tg=&L1Ud*05b)%wwTR=?LK zlth2DnK0-NFiZe8!@qUsJ-6(-D$yTqEdalP;03~ea36cSys=a=(SiZ%=!zW+e^4}O zmFSN)6K1;8oj(_xiPfC6HdbSPQ5g#W43qrUH)%QT#<9`-fw7Wf$2|Th1un%NW|iXH zSX7px1RGDEjaE`ZADftfc)Ff-C%WT*9sjuWeO~F`KuwQ$h3jAefSK<4qs>Hj{NIlk zHW5$tZ=kL;0rj!TAm-ckQ};ga^XN-OPeUs$lpBOAO-*2)de)s(N)KXF0G!yh$mJLRvperBtD*^5u4kRwBJ7E1FA%{} zFwyjYeI2;Vo(BLhd>eqLjh%OtFIe`tE22F{_@*ELkY9dW;`P;yuyX8}6d0?0{m?j8 zxt?$zJ(-;ALhQbNNo~#2a@urmI0>vr%u^=%+B7z6o}=p(EReC&(OE0GvL3@9te?8~ z>6|7vc=5Gzwk#O1`orx4P|_oX%>*;}Au&;0O1ksTk_gWcR>}7huz6^H@qfuGV>7EY zIow);xt-hy4xr|-3aDhOFRX{tptr^9l&z)Up9u@()Wb?Jefn9j0MIHM5WskV@t^0; zKOP$nuNWVR1$0s(5pRW+W5<+X=Uf`v;J3t5V5|sO=%6dU)*6TmY_euy;M$#cmU)+# zuJC(e!y#A{wOqvqDWmOIX573NRvDhNt@DR?R2vY9Z>e@` z-dQr$JNE$4R=`Y@ItYo;K?ypekYNr!BV0|TKXYfD=R> \ No newline at end of file diff --git a/assets/images/tab/icon_tab1_u.png b/assets/images/tab/icon_tab1_u.png new file mode 100644 index 0000000000000000000000000000000000000000..275f0b21e234c0a0eb547eb460178b8e14b42bc9 GIT binary patch literal 1163 zcmV;61a$j}P)Px#1am@3R0s$N2z&@+hyVZtHAzH4R9J=0nJstYMihqMJ6>Xi7?!Qd%9;~LxG^hh z_7~I(EDfu|%HpsVt-}-rB>e@Oz(w|Q>C{DC=>CEV>Er~=Er>>yWPQiZ=0%n@bN%T0 zdhUk_4YF-}4&Y}1CK0WaQfJrK*XyQzT{N4`rb37x07OJ|>3QC!YAw|navbM|nWu%f zH$sR>ozX5z9CF^)ekE`PY%8N}RRY^+Uz8bYfCT_kDfQ8H-BBM;*Blf z7O+}}aU9=tfz)b%)hdM^WG_0vYJE2zk0}hpRoe|x$`fX8`=BFcKD8|CJ_v#c$N=|% z)jH_{9R$HJjUsT;p!T`SS&okFeVUg8F2r(J#2o?Z-v@Gj$ z5CogzjSO7+ZG>UC>gs8w)L)_qOGGOn#QQ$P%=}Xgtk!wK+ZS!^6OkzZWV6hC0fr@%KDr26ARM{t10!t}PX8sL8@7Y67Sglg%(o;f8X?mWw5kgD=Y`y}lR$An1ZF$&r-O=OY z@yhwp<+jddX$~QqX^9>QbZ(Aakz(#0yWUdXvn54jk z)1ftV%k=;f0+_r5H(cA3ADEU2{Ho*c(;%EqmJ7&H=I5@b=Zrqh> z63Z4Wka)Nd4iSLWJ|UZ6%Vu^tU;r0H^gT1*Cuih~C \ No newline at end of file diff --git a/assets/images/tab/icon_tab2_s.png b/assets/images/tab/icon_tab2_s.png new file mode 100644 index 0000000000000000000000000000000000000000..81d2af3e2e6bcc97bd376422cd7db71c6db926b3 GIT binary patch literal 1122 zcmV-o1fBbdP)Px#1am@3R0s$N2z&@+hyVZt3`s;mRA_pF6*g(_0;{k zTfhrm@c#yz6n1dB9EtD@z-|HQiX!91b?04OosBu5Pwu*;%ngI<@uI6%d1M${+$=S7~Do2*lhNid|Q4X$SQ1OTIE;{{0F(g*s6pi1onJr1}Vf z4PZseWh6T{{`9rKp*c8Nz7g`G(BL!!M9$;cNDn>R3e{U7x)9hP0+H~@pE`aje~|*` z^!Dqc@!N1I@<}Y7W!x_hB48w!LLLI>rrq}@?Y(r?96aXrx3!FG2&9Y`lg=oyp2eV# zy#g&jwN9o`2;8@wLn#wp!`}zmf3(V1+92Hl*%Al~eV(U=c_EOxib3*J(r~ zDrJ-yTmpT8a=dAq-n30otvv#L0B#+@5q`8Su>*BdB8Wh&u($o5ZbP5kb!o}_s@W@^ zdJ{V!teSP`%YEn+84m#d^}Z|jp#v~Aw--Syo^Ad&Q%VqlJbdfb>QH1IU;3V z=BO9o?^0IQl_9W6nID`kNAcxkEp&Q&A%Zt%1}LW}5VKHeoTJqkMFaCg&uMlBe5E2Dgt(Aq2qsr#d8JKYpE>M*Zn)pD-`0p8<)=H}fEiR5%7I1oY3t zN>te2Ud*mWubdzrEWaA0T&5LtxwX(@(i!FS1TIC+E473P>k#BlEQlbwk5a$p6c2ZY zp3O+jH-lCR+(?Dv_|s^1xckMnqWj~gPgQk?yK%vJwZAjCt(0HnA^an&pDxk~H296o z87w`3W(N}`@FtzqsdHI0*wD~8W3l2~D2~P)AYpEd)KAmR?SNou%0iZyMiihi2Nu)z oj3VbKclfPH8ONv0FZi$GJC$p=Sw3AFeEPx#1am@3R0s$N2z&@+hyVZs?@2^KRA_Sl&TfhW&~VqTrvR< zFEpFYhD7uckAG_e;EI{A7mLMi@kuE|0GF=5DmX8CBc;@Uncp(=*vL$o`LrmnkpWW5 zPp}L%5iObd4?Mcfz3&Z40bCK$iBWv-yVm;9*09z98l}xIE>>s{i3X@^25W!CH_Oo0{}Dc%?9fTD5b`Ep5HvZO0786T3>HptRs-; zd0USHV7I`h%zUJ^CapCIAr6HQQzBY+=^G_)w>JVEU1BPPn3U&f88gD~(cXLQT(4~e z+IpRJ5ClgqYi**WVtuM@N~RiwFvh?Z4ydP``&6}1MKgrYXroy}&Q(?XAAXtVN~yhiRs*Dz7e@JkOR^B+R}TeiVP>B`26>*}m>gxtUMzHWc6Q0k zVM7IuTnn*^Hjyt8MM;vJ1C|kB=GRS?Afk_97&guw!Z18AL0uz?KiD>f8ixb`23eNf zG%>HjzCWWvfH6CVO2ydev4|hK(r3QJPzsBdQs+5^et5R0)J2Iuzpf2{8 zQnJ6!p9zBChbrY9_<(*hvc}4^F}h4| z2IP7ESJO70rxCUEc2B%ot=6N_=pO*D;Jz!~0C=ahj{B1T%(voS%tN7>4kU#200000 LNkvXXu0mjf_j2$l literal 0 HcmV?d00001 diff --git a/assets/images/tab/icon_tab3_s.png b/assets/images/tab/icon_tab3_s.png new file mode 100644 index 0000000000000000000000000000000000000000..129a1db9ad4361660e9492d5e206fe5fe9b001fa GIT binary patch literal 1027 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 X0Mb>Ct|s`Q00000NkvXXu0mjfi9D0s literal 0 HcmV?d00001 diff --git a/assets/images/tab/icon_tab4_u.png b/assets/images/tab/icon_tab4_u.png new file mode 100644 index 0000000000000000000000000000000000000000..98fcf58ea781870e84d92908780552ba1a505e34 GIT binary patch literal 889 zcmV-<1BU#GP)Px#1am@3R0s$N2z&@+hyVZsBS}O-RA_Uov zs}Qo20Bdb9olbiqa^~fn=%!w;pZELyiEj+v0*o{+@B+1yv*h@f# z!7uO@!9LzZY0OR9q3t_X_{5>2Fe`t(UDP*k;@;rY)`Fh*~ z>QqvtP@d-&`wJcb!ufpO(io@&5Ye$J91qI##C^Q$z%qS)=|j@P%tx+iI1ESTjh8)MATJ{*E)#f_yK!56No6gy1F{i*r;El%&c;t zp(u)Tt&O@KxWB)jG@DHV(9+s&;e0R{sP~v!000b!!>nQv-84BW4~wR;ZNSy&e&bG+jF< z0dX8(0=QWFyOI?6_ra_L_QXS48MkfnZ4E5nKBqAzoX_ViBD#2D{t+{Oe5$;BR6rcZ zZ2;GBEG~#>EF!neoYiWzjrW=Ifi#HdRMAhJ0O+J?y77$IDBzKlQBk(kfxlPdP(%Xk zP}P;`dh?&3^*_qaThG_gKG`HF1vI7k!BIj22YePf=F7GIZN`rBj8+gedt8i7Kf2^NC P00000NkvXXu0mjfvE7Yh literal 0 HcmV?d00001 diff --git a/constants/Colors.ts b/constants/Colors.ts index 14e6784..af06cb1 100644 --- a/constants/Colors.ts +++ b/constants/Colors.ts @@ -3,7 +3,7 @@ * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc. */ -const tintColorLight = '#0a7ea4'; +const tintColorLight = '#2b5acc'; const tintColorDark = '#fff'; export const Colors = { diff --git a/custom.d.ts b/custom.d.ts new file mode 100644 index 0000000..1c59232 --- /dev/null +++ b/custom.d.ts @@ -0,0 +1,4 @@ +declare module '*.png' { + const value: string; + export default value; +} diff --git a/tsconfig.json b/tsconfig.json index 909e901..7e76a03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,15 +3,8 @@ "compilerOptions": { "strict": true, "paths": { - "@/*": [ - "./*" - ] + "@/*": ["./*"] } }, - "include": [ - "**/*.ts", - "**/*.tsx", - ".expo/types/**/*.ts", - "expo-env.d.ts" - ] + "include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts", "custom.d.ts"] }