From 82e14a060b0ca83daffa30d8a90321bd75d66ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Tue, 15 Oct 2024 20:27:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Index.ets | 1 + src/main/ets/view/SafeView.ets | 95 +++++++++++++++--- src/main/resources/mdpi/media/base_back.png | Bin 0 -> 274 bytes src/main/resources/sdpi/media/base_back.png | Bin 0 -> 438 bytes src/main/resources/xldpi/media/base_back.png | Bin 0 -> 536 bytes src/main/resources/xxldpi/media/base_back.png | Bin 0 -> 922 bytes .../resources/xxxldpi/media/base_back.png | Bin 0 -> 1040 bytes 7 files changed, 81 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/mdpi/media/base_back.png create mode 100644 src/main/resources/sdpi/media/base_back.png create mode 100644 src/main/resources/xldpi/media/base_back.png create mode 100644 src/main/resources/xxldpi/media/base_back.png create mode 100644 src/main/resources/xxxldpi/media/base_back.png diff --git a/Index.ets b/Index.ets index bfda226..59f9d95 100644 --- a/Index.ets +++ b/Index.ets @@ -43,6 +43,7 @@ export { WindowHelper } from './src/main/ets/utils/WindowHelper' * 自定义view */ export { LoadingView } from './src/main/ets/view/LoadingView' +export { SafeView } from './src/main/ets/view/SafeView' /** * 自定义view */ diff --git a/src/main/ets/view/SafeView.ets b/src/main/ets/view/SafeView.ets index 2c37403..02e0779 100644 --- a/src/main/ets/view/SafeView.ets +++ b/src/main/ets/view/SafeView.ets @@ -1,30 +1,95 @@ +import { WindowHelper } from '../utils/WindowHelper' +import { inputMethod } from '@kit.IMEKit' + + @Preview @Component export struct SafeView { + @Consume('pageInfos') pageInfos?: NavPathStack @Link isLoading: boolean + @State _titleText: ResourceStr='' + private _onBackEvent?: () => void @Builder doNothingBuilder() { } + onBack(event: () => void) { + this._onBackEvent = event + return this + } + + titleText(title: ResourceStr) { + this._titleText = title + return this + } + @BuilderParam customBuilderParam: () => void = this.doNothingBuilder build() { - Stack() { - this.customBuilderParam() - Column() { - LoadingProgress() - .color(Color.White) - .width(80).height(80) - Text('努力加载中..') - .fontSize(16) - .fontColor(Color.White) + NavDestination() { + Stack() { + Column() { + Row() + .height(WindowHelper.topRectHeight) + .width('100%') + .backgroundColor('#999999') + Row() { + + Image($r("app.media.base_back")) + .height(15) + .onClick(() => { + if (this._onBackEvent) { + this._onBackEvent() + } else if (this.pageInfos) { + this.pageInfos.pop() + } + }) + + Text(this._titleText ?? '') + .maxLines(1) + .ellipsisMode(EllipsisMode.CENTER) + .textOverflow({ + overflow: TextOverflow.Ellipsis + }) + + Row() { + + } + } + .justifyContent(FlexAlign.SpaceBetween) + .padding({ + left: 15, + right: 15 + }) + .height(44) + .width('100%') + + this.customBuilderParam() + } + .width('100%') + .height('100%') + .justifyContent(FlexAlign.Start) + + Column() { + LoadingProgress() + .color(Color.White) + .width(80).height(80) + Text('努力加载中..') + .fontSize(16) + .fontColor(Color.White) + } + .visibility(this.isLoading ? Visibility.Visible : Visibility.None) + .width('100%') + .height('100%') + .backgroundColor('#40000000') + .justifyContent(FlexAlign.Center) } - .visibility(this.isLoading ? Visibility.Visible : Visibility.None) - .width('100%') - .height('100%') - .backgroundColor('#40000000') - .justifyContent(FlexAlign.Center) - } + }.onClick(() => { + inputMethod.getController().stopInputSession() + }) + .hideTitleBar(true) + .width('100%') + .height('100%') } } \ No newline at end of file diff --git a/src/main/resources/mdpi/media/base_back.png b/src/main/resources/mdpi/media/base_back.png new file mode 100644 index 0000000000000000000000000000000000000000..6e74d6078df51469c20232f630b1242830b948f5 GIT binary patch literal 274 zcmV+t0qy>YP)Px#%t=H+R47x8l06E-Koo>$NK#mdO*(DumbjbN3wQx54(4 zc5@Stuumc+#Gj~Be+)D89?>GDR2+t34j|ws#uzgIZ~-s`kiS7nsbLgFR{(tx*^`_- zL1~(fy!U64v50J)b8`T`hP2jWl1Bht5!pEBmQ|DolqAU{2!ex%bV#nOwd-b9YOSXv zcV!Fj{h}y}?6ph@-AMKTWY*d;!<+td`YTiA{j*&K8e_DGoLYCPz@LjZ9KYYL;aGpc Y9kdl+o~PU7+W-In07*qoM6N<$f@h3u`v3p{ literal 0 HcmV?d00001 diff --git a/src/main/resources/sdpi/media/base_back.png b/src/main/resources/sdpi/media/base_back.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3360e43379b44f3ecb502b550cb5c28bff7621 GIT binary patch literal 438 zcmV;n0ZIOeP)Px$a7jc#R5(wal)p*?K@i5j8SaRMg=k@w2T%gx{tygUoQ;+iLa-D>1i{8auIF@%sCS;ukj3|nxk|a4|=0gC- zG!9oR7H3cM>X59s^;5)s`3 znCT`xx7+QtdcFSCE95UQpU7H%?Y$>IZVLnqBhPy;`u8jqdib#csHkDFZ`k_I-@4pk# zbT^~XY&NrT9Dj_ODEo@mJ(@3BscK*=9}R3ZIR*}bUPx$(n&-?R7gv$mOV%tVHn5%kHO|+kS@hVDHQ|>fnMGxTV^qXT?%%P4jlv$1Q%UO z$I_)8OH09_LvazEL}RlRIyk(S8$y;+cZWi8@Pd+i){?Ei9X5JE!k3=+OIB_u%NGbK2h~5I|=|tq0h%Ao{ zV&?Y%cFj}}k<)6mDvd_tY8=oMGk*cF5z6P!cDudmIL=@HekdrP&p*g!v)=%$g&^ku zo@=ddg8P9WX3i1Ok%&}6kVDsXUpAY~+rBXWSANT~9;Q;M69DDV_kFGPCIBz2`^Td~ zp)i}tWU3-!g^WLFt@j4?T_31eEIuZp8WAlT0uhlnwr#%~*1SCsGcN)74q!eIh=@l- z+gj_-qb8sOVrB)P3gD3;xC8J?Yke>Z(kXwbR4R+eDS#P6;EKo#+qV6Lk9CNde*;)B ztgk)KdseU4e~d-w8u_4008e6r5(~}uL@C8YbQUYwK}g;5*8t2#E`K0Qq#*;CKO*UL z+Mn*Hkw+vDCNi`}&T;^b0jxw`BY`lH#b$UBf7O~HC9(W_yhNTOqX_XINCOuC$qr!Q apNM;mF5@XYjK4Mj0000Px&R7pfZR9Hv7m`!LCK@`W|n{Ctzsr3U?Jm?`Rf`VZ;*{1anXbz24FSZ^K?&fo|drf%1 z`M)>s&3^`=1z#i*S>4&$c>(|~13(7=jGCr-6a8kXsv1JX2Z(r_bDj^cC<@rNealyv zs;X-daa;(|T`mF<7kq=olL$>G@_H)2QC6mcDxm@m@5TeH|kUW<-=L3||XZ3q z3K92}kDo%|MF2R$7<=0YXc^Yk)wRd6tmgo*+XJ*f2svgL#_L8wd6=&2n=Q*?0IZ|Q7wfQ6}lPf?VUUQ-_ct}@1M)YB8y&a*Mjx%3??KHttWC$c=LXJ=Hz^M5aJ3VhMl*oe`KJ+HE?ES761SM07*qoM6N<$f+7x{jQ{`u literal 0 HcmV?d00001 diff --git a/src/main/resources/xxxldpi/media/base_back.png b/src/main/resources/xxxldpi/media/base_back.png new file mode 100644 index 0000000000000000000000000000000000000000..69b66365507f8a9abe8a8079491da542eaf7f1df GIT binary patch literal 1040 zcmV+r1n>KaP)Px&%1J~)RA@upnmuR~Q4q)fa~F)kSeP`Tjfb6}&F)?fNfE&WlEN=IMNm+|#&5B* zi1E8q@vBm_5EMD^t5Ar7AW=+q7X-o1T%|}tVsT2;Bs=;fE0?%;Z}x6)J-l}3&HirQ zd-I<+Zwde4mrkc!Jpof{8iD;0Bj@q{UhT`UFYinCEH8s@_VCkH9PbQPe)v*Fu zmSr*X6J~A=3Iq|ohz-avj5S2`keL^jniV1{!~$fR<~jg(nR$M>B|=2CUqhy8ZU=CK znHzNLm58!6jgVm&`vF`8AbC%(>$;~UhPpo%_}nmzUH~TrgPDj9IF55g*+ve;%w$>C zIc7ergCU|R0J|K=x#inN3Y5)ellgr98Z++{z$=b9+C~D@)z!6Ne0=;qGj|GL#(qgfw{6>YU~<$s&^>Q&Z(lSqG4U8cMrRA) zV?#qj=iuPryOPOK;H0F9Wm$_o&r`azQsC!(GMVfg8XC%%O^yObfhL(uX4&NApA%0oKEp0$OEp0%{JZ0PUr|0;nA z4J1+QKM9WLUMiK^n#<*WNMS+&NfrCIQ=*%xRBCrFmzxd)BL=c8Ya27)6e{)w+qRDo z5r>5l0hy+`kC`t?bT5%e^x3v85!8~bWp`N^#RhQDb=}LAL}k`S2y#%ZVpjw8SA@bS zHh}L$w0W*#M+Ou|u>pJmur5fkBLRw1v8x7(TCuAFQjr-O8+!#{mB5imu?2ogZ+p`; zuQ2moffKP}3w)IZG7RGbfF&9yp%nYS1G)-ekKkX$Gi4ne9nFP8;bq+{Y89Ef+V=ib z%_PPL%)C}NeMD6DD5D!+?)fY&>+bGu92pt817M@hsp{pFI_&Ajih-1&64&A3;p+f) z=o}MK;Bi3_*s@h5+a-gCec+B&>6S|D9s-5CiPR)Q6NXSZ|w%1b?RtmMf zzzbU`#B#+Mrc#LQ5?ER(#ClCGs1)M=kidtU`PAa9O7L?(wfG4$02`CF7HN0@0000< KMNUMnLSTZ}DA;=d literal 0 HcmV?d00001