亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

HarmonyOS ArkTS層疊布局Stack深度解析:對(duì)齊、定位與避坑實(shí)戰(zhàn)

HarmonyOS ArkTS層疊布局Stack深度解析:對(duì)齊、定位與避坑實(shí)戰(zhàn) 搞了半天終于把HarmonyOS那套ArkTS里的層疊布局Stack整明白了。前幾天有個(gè)剛轉(zhuǎn)鴻蒙開(kāi)發(fā)的朋友問(wèn)我一個(gè)頭像右上角的紅色角標(biāo)怎么用原生組件放上去我第一反應(yīng)就是這玩意不就是給Stack準(zhǔn)備的嗎層疊布局在ArkTS的布局體系里地位有點(diǎn)像PS里的圖層面板能把一個(gè)個(gè)組件按Z軸方向堆起來(lái)做到你壓我、我蓋你還不影響各自的位置計(jì)算。這篇就把我從零踩到順的全過(guò)程寫(xiě)下來(lái)從基礎(chǔ)語(yǔ)法到懶人式對(duì)齊方法再到各種坑的排查一次說(shuō)清楚。如果你正要開(kāi)始寫(xiě)HarmonyOS應(yīng)用或者已經(jīng)在用Column、Row排布界面但總覺(jué)得差點(diǎn)意思這篇文章都值得花十分鐘看完。內(nèi)容不搞虛的全部以可運(yùn)行的ArkTS代碼和真實(shí)界面效果為準(zhǔn)尤其會(huì)重點(diǎn)講熱搜里常被問(wèn)到的那個(gè)問(wèn)題Stack里的子組件怎么控制自己在底部上方100的位置水平居中。1. 布局體系里的“疊羅漢”層疊布局解決什么問(wèn)題1.1 先看懂ArkTS的布局家族正式開(kāi)始之前先花兩分鐘把ArkTS里這些布局容器捋一遍。做過(guò)Android的同學(xué)應(yīng)該能看出它們跟傳統(tǒng)ViewGroup的對(duì)應(yīng)關(guān)系理解了這個(gè)后面學(xué)什么布局都快。ArkTS聲明式UI里常用的容器布局有這么幾類Column線性縱向排列、Row線性橫向排列、Flex彈性布局可以換行類似CSS的flex、Grid網(wǎng)格布局適合九宮格這種規(guī)整格子、RelativeContainer相對(duì)定位容器以及今天的主角Stack層疊布局。它們的分工很明確Column和Row解決的是“排隊(duì)”問(wèn)題讓元素一個(gè)挨一個(gè)排Flex解決“空間分配”問(wèn)題一行放不下就換行剩下的空間按比例瓜分Grid解決“對(duì)齊格子”的問(wèn)題列數(shù)固定格子規(guī)整。一旦需求變成“兩個(gè)組件需要重疊在一起”比如圖片上方蓋一行半透明文字、角標(biāo)壓在圖標(biāo)右上角沒(méi)一個(gè)容器能優(yōu)雅地接住這活只有Stack能辦。1.2 Stack的核心能力Z軸上的自由Stack的核心思路其實(shí)特別樸素它的子組件不橫向排、不縱向排而是全部默認(rèn)從左上角開(kāi)始重疊后加入的子組件會(huì)蓋在先加入的子組件上面形成一個(gè)Z軸方向的堆疊。理解這一點(diǎn)的時(shí)候我建議你把它類比成桌面上堆了一摞便簽紙。最先放的那張?jiān)谧畹紫潞蠓诺耐仙w最上面那張只有你能看到全部?jī)?nèi)容下面的全被擋住了一部分。Android里叫FrameLayoutWeb里用position: relative加z-index也能實(shí)現(xiàn)類似效果ArkTS里就是Stack。剛開(kāi)始用Stack的人容易犯一個(gè)糊涂以為子組件放在Stack里就只能左上角疊在一起沒(méi)法控制各自的位置。其實(shí)Stack本身提供了兩種位置控制手段一個(gè)管全局、一個(gè)管個(gè)體稍后第3節(jié)會(huì)細(xì)講。你只要記住Stack負(fù)責(zé)把子組件切換成“可重疊”的模式至于每個(gè)組件具體待在哪完全可以通過(guò)屬性單獨(dú)指定自由度比線性布局高得多。2. 環(huán)境準(zhǔn)備與一個(gè)最簡(jiǎn)層疊案例2.1 開(kāi)發(fā)環(huán)境快速搭建先確認(rèn)一下你手上的開(kāi)發(fā)環(huán)境。目前主流方案是使用DevEco Studio版本建議4.0及以上對(duì)應(yīng)的HarmonyOS SDK版本最好在API 9以上這樣聲明式UI的ArkTS支持才完整寫(xiě)起來(lái)也順手。新建項(xiàng)目的時(shí)候注意選擇一個(gè)帶UIAbility的Empty Ability模板ArkTS代碼寫(xiě)在entry模塊的pages目錄下。一個(gè)最小的ArkTS頁(yè)面其實(shí)就是一個(gè)被Entry裝飾的struct組件里面由build方法描述UI結(jié)構(gòu)。如果你之前寫(xiě)過(guò)Flutter或者SwiftUI這套寫(xiě)法的上手成本幾乎為零如果只寫(xiě)過(guò)Android XML布局也沒(méi)關(guān)系多寫(xiě)幾次就習(xí)慣了。我強(qiáng)烈建議初學(xué)階段不要開(kāi)預(yù)覽器看效果直接在模擬器或者真機(jī)上跑因?yàn)镾tack的層級(jí)關(guān)系在預(yù)覽器里有時(shí)候會(huì)有渲染時(shí)序問(wèn)題看著是錯(cuò)位的真機(jī)上跑反而是正常的免得被工具誤導(dǎo)。2.2 從零手寫(xiě)第一個(gè)Stack頁(yè)面直接看代碼。下面這個(gè)例子是Stack最經(jīng)典的演示三個(gè)不同顏色、不同尺寸的正方形疊在一起感受一下默認(rèn)的層級(jí)效果。Entry Component struct StackDemo { build() { Stack() { Column() .width(240) .height(240) .backgroundColor(#FF6B6B) Column() .width(160) .height(160) .backgroundColor(#4ECDC4) Column() .width(90) .height(90) .backgroundColor(#FFE66D) } .width(100%) .height(100%) .alignContent(Alignment.Center) } }代碼里我特意把三個(gè)Column的寬高設(shè)成了240、160、90三檔背景色也不一樣。運(yùn)行一下你就明白Stack的行為模式了三個(gè)子組件默認(rèn)重疊對(duì)齊對(duì)齊方式由Stack自身的alignContent屬性決定這里我設(shè)成了Alignment.Center所以三者都水平垂直居中先寫(xiě)的紅色塊在底層最后寫(xiě)的黃色塊在最上層所以黃色塊完整可見(jiàn)綠色塊露出四周紅色塊只露出一圈邊框每個(gè)子組件的位置互不影響不存在線性布局那種擠壓和占位問(wèn)題。這個(gè)Demo雖然短但已經(jīng)把Stack的核心機(jī)制演示透了。接下來(lái)的所有復(fù)雜效果本質(zhì)都是在“多個(gè)子組件疊放”的基礎(chǔ)上加上尺寸、位置、事件的精確控制。3. 控制子組件位置的兩種姿勢(shì)整體對(duì)齊與個(gè)體對(duì)齊3.1 容器級(jí)對(duì)齊alignContent先講那個(gè)管全局的參數(shù)alignContent。這個(gè)屬性掛在Stack根節(jié)點(diǎn)上決定所有子組件的“默認(rèn)排隊(duì)位置”。它的取值范圍就是Alignment那一組枚舉常見(jiàn)的有枚舉值實(shí)際效果Alignment.TopStart所有子組件默認(rèn)對(duì)齊到左上角Alignment.Top所有子組件默認(rèn)對(duì)齊到頂部水平居中Alignment.TopEnd所有子組件默認(rèn)對(duì)齊到右上角Alignment.Start所有子組件默認(rèn)對(duì)齊到左側(cè)垂直居中Alignment.Center所有子組件默認(rèn)水平垂直居中Alignment.End所有子組件默認(rèn)對(duì)齊到右側(cè)垂直居中Alignment.BottomStart所有子組件默認(rèn)對(duì)齊到左下角Alignment.Bottom所有子組件默認(rèn)對(duì)齊到底部水平居中Alignment.BottomEnd所有子組件默認(rèn)對(duì)齊到右下角實(shí)操里我的經(jīng)驗(yàn)是先把整個(gè)Stack的alignContent設(shè)為某個(gè)基準(zhǔn)位置比如一個(gè)全屏的Stack通常設(shè)成Alignment.Center或者Alignment.Bottom這樣大多數(shù)子組件不需要單獨(dú)設(shè)置位置只有少數(shù)元素再用alignSelf做微調(diào)。要注意alignContent只是一個(gè)“默認(rèn)值”邏輯不是強(qiáng)制鎖死。意思就是子組件如果自己帶了alignSelf或者margin、position之類的屬性那以它自己的為準(zhǔn)。所以別擔(dān)心設(shè)了容器級(jí)對(duì)齊后所有兒子就只能擠在一個(gè)角落了后面還有手段解放它們。3.2 子組件級(jí)對(duì)齊alignSelf再講那個(gè)管個(gè)體的屬性alignSelf。這個(gè)屬性讓單個(gè)子組件在Stack內(nèi)部單獨(dú)調(diào)整自己的對(duì)齊方式完全不用管兄弟組件。用法是在子組件鏈?zhǔn)秸{(diào)用里加一個(gè).alignSelf()Stack({ alignContent: Alignment.Center }) { Column() .width(200) .height(200) .backgroundColor(#FF6B6B) Text(右下角標(biāo)簽) .alignSelf(Alignment.BottomEnd) .margin({ right: 16, bottom: 16 }) .fontSize(14) .fontColor(Color.White) .backgroundColor(#33000000) .padding({ left: 8, right: 8, top: 4, bottom: 4 }) .borderRadius(4) } .width(100%) .height(200)注意這里Stack容器整體alignContent設(shè)了Center但第二個(gè)子組件Text通過(guò)alignSelf(BottomEnd)把自己定位到了右下角還加了margin進(jìn)一步偏移。這就是Stack真正靈活的地方全局統(tǒng)一局部自由互不干擾。實(shí)戰(zhàn)里alignSelf最好用的場(chǎng)景就是做角標(biāo)。比如一個(gè)卡片右上角的“HOT”標(biāo)簽整個(gè)卡片放在一個(gè)居中Stack里標(biāo)簽自己alignSelf到TopEnd再margin調(diào)整距離邊緣的間距幾行代碼搞定不用嵌套一堆容器。3.3 熱搜實(shí)戰(zhàn)底部上方100居中的寫(xiě)法下面進(jìn)入很多初學(xué)者問(wèn)了無(wú)數(shù)遍的實(shí)戰(zhàn)題Stack里的一個(gè)子組件要相對(duì)整個(gè)Stack的水平方向居中同時(shí)垂直方向距離底部100。別小看這個(gè)問(wèn)題熱搜里反復(fù)出現(xiàn)“鴻蒙 stack布局子組件怎么控制自己在底部上方100的位置居中”說(shuō)明卡在這的人真不少。先給答案最簡(jiǎn)單的寫(xiě)法Entry Component struct BottomButtonDemo { build() { Stack() { // 背景層可以是任意內(nèi)容 Column() .width(100%) .height(100%) .backgroundColor(#F1F3F5) // 這個(gè)按鈕就是目標(biāo)水平居中距離底部100 Button(我知道了) .width(200) .height(48) .alignSelf(Alignment.Bottom) // 先放到水平居中、底部對(duì)齊 .margin({ bottom: 100 }) // 再往上推100 } .width(100%) .height(100%) } }拆解一下思路Stack對(duì)齊系統(tǒng)里Alignment.Bottom本身就是“水平居中底部對(duì)齊”所以直接alignSelf(Bottom)就完成了水平居中這一半。然后想做到“距離底部100”就在子組件的margin里把bottom設(shè)為100相當(dāng)于讓按鈕整體往上抬了100。兩步合起來(lái)就是底部上方100且水平居中。很多人想不明白的點(diǎn)在于是用margin還是position。在Stack里最簡(jiǎn)單有效的偏移方式就是margin它會(huì)參與布局計(jì)算真機(jī)上對(duì)尺寸自適應(yīng)也更友好。position屬性也能用但它會(huì)把元素變成絕對(duì)定位后續(xù)父容器尺寸變化時(shí)容易出現(xiàn)超出邊界的情況初學(xué)階段建議優(yōu)先用margin。如果還想更精細(xì)一點(diǎn)比如按鈕要求距離底部100同時(shí)還要距離右側(cè)20可以連續(xù)疊加先.alignSelf(Alignment.BottomEnd), 再.margin({ right: 20, bottom: 100 })。但注意一旦alignSelf用了End水平方向就不再是居中而是靠右了二者是不可兼得的“方向組合”。所以要先想清楚自己要的是靠哪邊。4. 層疊布局的高頻應(yīng)用場(chǎng)景4.1 右上角角標(biāo)電商列表的未讀紅點(diǎn)Stack在真實(shí)項(xiàng)目中最常見(jiàn)的用途就是角標(biāo)類需求。拿電商應(yīng)用舉例商品列表每個(gè)格子的右上角經(jīng)常會(huì)有一個(gè)“滿減”標(biāo)簽或者未讀紅點(diǎn)。這種UI結(jié)構(gòu)天然就是“原內(nèi)容 覆蓋物”的關(guān)系用線性布局寫(xiě)會(huì)麻煩到懷疑人生用Stack寫(xiě)就是兩三行的事。Entry Component struct BadgeDemo { build() { Stack({ alignContent: Alignment.Center }) { // 商品圖底板 Column() .width(120) .height(120) .backgroundColor(#DEE2E6) .borderRadius(12) // 右上角紅點(diǎn) Column() .width(16) .height(16) .backgroundColor(#FA5252) .borderRadius(8) .alignSelf(Alignment.TopEnd) .margin({ top: 6, right: 6 }) } .width(100%) .height(100%) } }這里我假裝商品底圖是一個(gè)灰色色塊紅點(diǎn)通過(guò)alignSelf(TopEnd)跑到右上角再用margin把紅點(diǎn)往里收6避免貼邊太緊。你把這個(gè)紅點(diǎn)換成Text標(biāo)簽里面塞數(shù)字或者“NEW”就是一個(gè)標(biāo)準(zhǔn)的加號(hào)角標(biāo)。做角標(biāo)的時(shí)候有個(gè)細(xì)節(jié)值得注意角標(biāo)內(nèi)容變化時(shí)比如從9變成99它的寬度會(huì)自動(dòng)撐開(kāi)但因?yàn)閍lignSelf加margin的寫(xiě)法不會(huì)影響容器其他兄弟組件所以整體布局不會(huì)晃動(dòng)這一點(diǎn)比用線性布局里做fixed寬高的方案穩(wěn)得多。4.2 懸浮按鈕與底部操作欄另一個(gè)高頻場(chǎng)景是做頁(yè)面的懸浮操作區(qū)。比如一個(gè)視頻播放頁(yè)面返回按鈕、點(diǎn)贊按鈕、評(píng)論輸入框經(jīng)常要懸浮在播放器內(nèi)容上。這種界面用Stack就是天然解背景放視頻層前景放操作層互不打擾。Entry Component struct FloatActionDemo { build() { Stack() { // 模擬視頻區(qū)域 Column() .width(100%) .height(100%) .backgroundColor(#212529) // 頂部返回按鈕 Button(返回) .backgroundColor(#66000000) .fontColor(Color.White) .alignSelf(Alignment.TopStart) .margin({ left: 16, top: 16 }) // 底部操作欄 Row() { Text(點(diǎn)贊) Text(評(píng)論) Text(分享) } .width(100%) .justifyContent(FlexAlign.SpaceAround) .backgroundColor(#66000000) .fontColor(Color.White) .padding({ top: 10, bottom: 10 }) .alignSelf(Alignment.Bottom) } .width(100%) .height(100%) } }從上面這段可以看到Stack不僅能容納單個(gè)組件里面嵌套一個(gè)Row再放整行操作欄也完全沒(méi)問(wèn)題。也就是說(shuō)Stack的層級(jí)能力完全可以搭載一行內(nèi)部有復(fù)雜布局的區(qū)塊它只負(fù)責(zé)“這行整體待在我這個(gè)容器底下”不負(fù)責(zé)管行內(nèi)元素的排列。這種做法比用絕對(duì)坐標(biāo)定位的寫(xiě)法省心在一點(diǎn)不同屏幕尺寸下Stack的百分比寬高依然生效懸浮按鈕的位置不會(huì)因?yàn)闄C(jī)型尺寸變化而跑偏。4.3 圖片文字疊加封面卡片圖片上蓋文字基本是內(nèi)容類應(yīng)用的家常便飯。頭條、抖音、購(gòu)物車?yán)锏纳唐房ǘ荚谕孢@個(gè)套路一張封面圖底下蓋一層半透明漸變或者一塊深色遮罩再放標(biāo)題和價(jià)格。實(shí)現(xiàn)上仍然是Stack整個(gè)卡片只有一層結(jié)構(gòu)Entry Component struct CoverCardDemo { build() { Stack() { // 圖片占位實(shí)際開(kāi)發(fā)換成Image組件 Column() .width(100%) .height(200) .backgroundColor(#343A40) // 底部信息遮罩層 Column() .width(100%) .height(60) .backgroundColor(#AA000000) .alignSelf(Alignment.Bottom) // 白色文字 Text(這是一條測(cè)試標(biāo)題長(zhǎng)度隨意觀察換行效果) .fontSize(16) .fontColor(Color.White) .alignSelf(Alignment.BottomStart) .margin({ left: 12, right: 60, bottom: 20 }) } .width(100%) .height(200) .borderRadius(12) .clip(true) } }這里上方遮罩和文字都在Stack里遮罩通過(guò)alignSelf(Bottom)固定在底部區(qū)域文字通過(guò)BottomStart加margin對(duì)齊到左下角right留了60的空間給可能存在的價(jià)格標(biāo)簽。最后那個(gè).clip(true)很重要它讓Stack裁剪掉超出圓角范圍的子組件不然蓋上的遮罩會(huì)把父容器的圓角給“頂?shù)簟毙Ч浅3蟆?.4 頭像與在線狀態(tài)徽章最后一個(gè)高頻場(chǎng)景是社交應(yīng)用里幾乎人人見(jiàn)過(guò)的頭像加狀態(tài)點(diǎn)。頭像底部對(duì)齊在線狀態(tài)點(diǎn)壓到頭像右下角稍微露出半個(gè)身位。Entry Component struct AvatarDemo { build() { Stack() { // 頭像外層白圈 Column() .width(72) .height(72) .backgroundColor(#FFFFFF) .borderRadius(36) // 頭像內(nèi)層圖 Column() .width(64) .height(64) .backgroundColor(#ADB5BD) .borderRadius(32) // 在線狀態(tài)點(diǎn) Column() .width(18) .height(18) .backgroundColor(#40C057) .borderRadius(9) .alignSelf(Alignment.BottomEnd) .margin({ right: 2, bottom: 2 }) } .width(100%) .height(100%) } }這個(gè)例子的重點(diǎn)是那個(gè)狀態(tài)點(diǎn)它比頭像本身小一圈而且刻意露出棋子邊兒這種效果在線性布局里做會(huì)很別扭你需要算各種偏移量。但在Stack里就是alignSelf到右下角再margin往外挪一點(diǎn)點(diǎn)即可和實(shí)際設(shè)計(jì)稿的對(duì)齊意圖非常匹配。5. 避坑指南布局重疊、事件穿透與性能5.1 布局重疊不是bug但要注意層級(jí)搜“布局重疊”這個(gè)詞的人很多是因?yàn)樵赟tack里發(fā)現(xiàn)子組件疊到不想疊的地方以為出bug了。其實(shí)這不是錯(cuò)誤而是Stack的設(shè)計(jì)目的。真正該做的是明確每個(gè)子組件的層級(jí)順序和位置。Stack的子組件層級(jí)規(guī)則很簡(jiǎn)單先寫(xiě)的在下后寫(xiě)的在上而zIndex屬性可以顯式調(diào)整。比如有兩個(gè)按鈕疊在一起想讓紅色的永遠(yuǎn)蓋在藍(lán)色上面在紅色按鈕上加一個(gè).zIndex(2)藍(lán)色設(shè).zIndex(1)層級(jí)關(guān)系就鎖死了。實(shí)際項(xiàng)目里層級(jí)沖突最容易出現(xiàn)在“同一個(gè)Stack里既有背景元素又有交互元素”的場(chǎng)景。我的習(xí)慣是把背景類元素放在最前面交互元素隨后最后用zIndex控制覆蓋關(guān)系避免因?yàn)槎鄠€(gè)元素同時(shí)集中在某個(gè)區(qū)域?qū)е曼c(diǎn)擊目標(biāo)被兄弟組件擋住。5.2 事件命中與穿透控制比層級(jí)更隱蔽的坑是事件穿透。Stack里上層組件如果設(shè)置成了透明背景或者背景色接近全透明它雖然看不見(jiàn)但依然會(huì)攔截點(diǎn)擊事件。也就是說(shuō)你放了一個(gè)全屏透明層在頂部下面所有按鈕都會(huì)點(diǎn)不動(dòng)但界面上根本看不到原因。解決辦法是使用hitTestBehavior屬性。ArkTS里對(duì)它有三種主流的取值取值行為HitTestMode.Default默認(rèn)模式組件自身響應(yīng)事件并且阻止事件傳遞給底部兄弟組件HitTestMode.Block組件自身不響應(yīng)事件但依然阻斷事件向下傳遞HitTestMode.Transparent組件自身嘗試響應(yīng)事件同時(shí)透?jìng)鹘o下層組件HitTestMode.None組件完全不參與事件命中測(cè)試事件直接穿過(guò)它命中底層組件做了一個(gè)懸浮評(píng)分彈層時(shí)經(jīng)常需要半透明遮罩后面的內(nèi)容不可點(diǎn)那遮罩就設(shè)Default如果是一個(gè)純裝飾的引導(dǎo)層要既能響應(yīng)點(diǎn)擊關(guān)閉又讓點(diǎn)擊事件穿透到底層那就用Transparent。這個(gè)調(diào)起來(lái)需要結(jié)合具體交互設(shè)計(jì)去試但知道有這些選項(xiàng)排查問(wèn)題時(shí)就快多了。5.3 尺寸約束、百分比與自適應(yīng)邊界Stack雖然“自由”但它對(duì)子組件的尺寸仍然有約束。子組件如果沒(méi)設(shè)置寬高會(huì)盡量跟隨內(nèi)容大小如果設(shè)置了百分比寬高參考的是Stack自身的尺寸如果子組件的固定尺寸超過(guò)了Stack容器就會(huì)發(fā)生溢出。實(shí)際開(kāi)發(fā)里我見(jiàn)過(guò)不少新手在Stack里放了固定寬度300的組件但容器只有200寬真機(jī)上部分內(nèi)容被切掉或者莫名其妙把別的組件頂出區(qū)域。這種時(shí)候優(yōu)先檢查的是子組件是否設(shè)置了合理的最大寬度、容器是否設(shè)置了.clip(true)以及用的是不是百分比寬高。自適應(yīng)場(chǎng)景下建議優(yōu)先用百分比和margin/dimension配合少寫(xiě)死px數(shù)值。比如一個(gè)卡片要適配不同手機(jī)寬度把卡片寬度設(shè)成90%角標(biāo)的位置用alignSelf加margin控制這樣任何屏幕尺寸下都能保持相對(duì)位置一致不會(huì)因?yàn)槟骋欢诉^(guò)窄導(dǎo)致界面元素跑出屏幕。5.4 不要濫用Stack什么時(shí)候換FlexStack雖然好用但不是什么場(chǎng)景都適合。如果一個(gè)頁(yè)面里幾乎都是依次排列的內(nèi)容比如表單頁(yè)、設(shè)置頁(yè)、縱向列表頁(yè)用Column或者List才是正解硬用Stack去疊反而會(huì)讓布局層級(jí)變得復(fù)雜維護(hù)成本直線上升。給一個(gè)簡(jiǎn)單的判斷標(biāo)準(zhǔn)如果界面元素之間沒(méi)有“重疊”需求并且需要響應(yīng)式換行或按比例分配空間那就別用Stack如果元素之間天然存在壓蓋關(guān)系、需要Z軸層疊、需要某個(gè)元素懸浮在其他內(nèi)容之上那Stack就是最佳選擇。還有就是性能。Stack本身并不重但如果一個(gè)頁(yè)面里嵌套了十幾層Stack每層還都帶了復(fù)雜的子組件那渲染壓力會(huì)比同等結(jié)構(gòu)的Column大不少。我的習(xí)慣是控制層級(jí)深度能用一層Stack加alignSelf解決的問(wèn)題絕不用三層嵌套。這不是Stack的問(wèn)題是所有容器布局的通用原則。6. 進(jìn)階Stack與其他布局的搭配與狀態(tài)聯(lián)動(dòng)6.1 頁(yè)面路由棧與Stack布局的區(qū)別講到這里順便厘清一個(gè)概念A(yù)rkTS里的頁(yè)面路由棧router棧和Stack布局是兩碼事。路由棧管的是頁(yè)面之間的跳轉(zhuǎn)每個(gè)頁(yè)面是獨(dú)立的路由實(shí)例從一個(gè)頁(yè)面跳到另一個(gè)頁(yè)面靠的是router.pushUrl。而Stack布局是在同一個(gè)頁(yè)面內(nèi)部管的是組件和組件的疊放。這兩個(gè)概念在鴻蒙開(kāi)發(fā)里都帶“?!弊值珜蛹?jí)完全不同千萬(wàn)別混。在頁(yè)面上看不到“路由棧”這個(gè)組件你是操作不了它的顯隱的反過(guò)來(lái)Stack布局也沒(méi)有能力去控制頁(yè)面跳轉(zhuǎn)它只負(fù)責(zé)組件排版。把它們弄混是不少初學(xué)者寫(xiě)了好幾天之后才反應(yīng)過(guò)來(lái)的事。如果看到有些人把多個(gè)“頁(yè)面內(nèi)容”直接塞進(jìn)同一個(gè)Stack里用狀態(tài)變量控制顯示和隱藏那一定要小心這屬于“偽頁(yè)面切換”頁(yè)面之間沒(méi)有獨(dú)立生命周期狀態(tài)管理也容易亂不如直接用路由棧來(lái)得干凈。6.2 配合Flex/Grid實(shí)現(xiàn)復(fù)雜面板Stack的另一個(gè)高價(jià)值用法是在復(fù)雜面板里作為“局部層疊容器”和其他布局嵌套。最常見(jiàn)的就是一個(gè)Grid網(wǎng)格每個(gè)格子內(nèi)部再用Stack去疊角標(biāo)或者一個(gè)Flex流式標(biāo)簽區(qū)域每個(gè)標(biāo)簽做一個(gè)小型Stack來(lái)展示刪除按鈕。比如做一個(gè)九宮格圖片上傳組件熱搜里也經(jīng)常有人搜“android 九宮格布局”每格的右上角放一個(gè)刪除按鈕就可以在Grid的item構(gòu)造里用一個(gè)Stack包住圖片和刪除按鈕。這樣外層Grid負(fù)責(zé)網(wǎng)格排布內(nèi)層Stack負(fù)責(zé)“圖片刪除鍵”的層疊關(guān)系職責(zé)清晰不會(huì)互相污染。Grid() { ForEach(this.imageList, (item: string) { GridItem() { Stack({ alignContent: Alignment.Center }) { // 假圖片實(shí)際是Image(item) Column() .width(100%) .height(100%) .backgroundColor(#E9ECEF) // 右上角刪除按鈕 Text(×) .fontSize(18) .fontColor(Color.White) .backgroundColor(#FA5252) .borderRadius(10) .width(20) .height(20) .textAlign(TextAlign.Center) .alignSelf(Alignment.TopEnd) .margin({ top: 4, right: 4 }) .onClick(() { this.imageList this.imageList.filter((v: string) v ! item) }) } } }, (item: string) item) } .columnsTemplate(1fr 1fr 1fr) .rowsTemplate(1fr 1fr 1fr) .columnsGap(8) .rowsGap(8) .width(100%) .height(260)這套組合方式在內(nèi)容型應(yīng)用里幾乎天天用。它繼承了Grid的整齊排布優(yōu)點(diǎn)又疊加了Stack的層疊能力兩者配合得當(dāng)代碼可讀性和UI還原度都很好。6.3 狀態(tài)管理下的層疊刷新細(xì)節(jié)最后提一個(gè)和狀態(tài)管理相關(guān)的細(xì)節(jié)。Stack里的子組件顯隱切換如果依賴的是狀態(tài)變量那么狀態(tài)變化的觸發(fā)方式會(huì)影響層級(jí)刷新效果。比如你在Stack里放了一個(gè)loading蒙層用一個(gè)布爾變量控制它是否顯示。當(dāng)網(wǎng)絡(luò)請(qǐng)求開(kāi)始時(shí)把變量設(shè)為true請(qǐng)求結(jié)束時(shí)設(shè)為false。這時(shí)候要注意Stack并不會(huì)因?yàn)槟愀淖円粋€(gè)狀態(tài)變量就“重新分配”所有子組件的位置它只會(huì)更新那些真正依賴該狀態(tài)的節(jié)點(diǎn)的可見(jiàn)性、尺寸、內(nèi)容等。所以只要你沒(méi)有改其他子組件的數(shù)據(jù)兄弟組件的位置基本不會(huì)跳動(dòng)。但如果你的狀態(tài)變量里存的是一個(gè)數(shù)組比如列表數(shù)據(jù)并且你直接修改了數(shù)組某個(gè)元素就可能觸發(fā)包含該元素的組件的重新測(cè)量和繪制。如果組件剛好在Stack里且尺寸是自適應(yīng)內(nèi)容那布局就會(huì)重新計(jì)算。這一機(jī)制本身沒(méi)問(wèn)題但如果發(fā)現(xiàn)某些堆疊組件“莫名抖動(dòng)”先排查一下是不是父組件或者兄弟組件的某個(gè)狀態(tài)被無(wú)意間更新了。我建議把“遮罩層”“懸浮層”這類組件的顯隱和業(yè)務(wù)數(shù)據(jù)狀態(tài)分開(kāi)維護(hù)盡量讓它們只依賴一兩個(gè)專門(mén)的布爾變量不要和列表、表單數(shù)據(jù)混在同一個(gè)大對(duì)象里。這樣狀態(tài)刷新時(shí)影響范圍最小不是所有數(shù)據(jù)變了都需要重新計(jì)算整個(gè)Stack的布局。Stack這個(gè)布局在ArkTS里的地位我用一句話總結(jié)就是它解決的是你無(wú)法用線性容器解決的“疊放”需求但它的靈活性也意味著你需要有更明確的層級(jí)意識(shí)和尺寸控制能力。上面的內(nèi)容是我在實(shí)際項(xiàng)目中反復(fù)試出來(lái)的幾乎每個(gè)示例都在真機(jī)上跑過(guò)。尤其是alignSelf加margin這套組合方式學(xué)會(huì)之后鴻蒙界面里能擋住你的布局難題十之八九都能化解。如果你在某一步踩了坑建議先回到這一篇文章把第3節(jié)的兩種對(duì)齊方式重新吃透再去看第5節(jié)的避坑場(chǎng)景。很多看起來(lái)玄乎的布局問(wèn)題本質(zhì)上就是對(duì)“整體對(duì)齊”和“個(gè)體對(duì)齊”這兩個(gè)概念沒(méi)分清楚。搞定了這兩個(gè)點(diǎn)Stack用起來(lái)就順暢多了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
物业黑人 AV一区| 美女91网| www.国产高潮精品| 中文字幕日韩专区精品系列 | 97精品久久| 日本有码影片下载| 人妻天天爽夜夜爽精品2| 免费一级a毛片久久久久久鸭绿欲| 国产25页| 狠狠 91| 欧美高清无码免费视频高清版| 国精综合一二三区影视| 国产免费永久精品无码| 人人操人人操人人人操| 亚洲精品97| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 久久天堂婷婷网| 午夜无遮挡男女啪啪视频| 欧美人妻熟女在线| 精品96久久| 蜜臀av在线播放一区二区三区| 影音先锋少妇| 日韩无码人妻| 日本二三四区| 国内毛片四区| 东京热AV男人的天堂| 国产免费永久精品无码| 国产极品馒头逼| 国产天天看| 久操视频这里只有精品| 欧美影音在线| 春色综合免费| 亚洲图片 激情小说| 综合网亚洲1| 日韩9区| 蜜臀久久99精品久久久久久成人小说 | 亚洲日韩久久精品一区| 五月婷婷久久综合| 明星性猛交ⅹxxx乱大交| 蜜臀99久| 老妇女91| 嗯嗯啊啊好爽| 国产v亚洲v日韩v欧美v片另类| 啊啊啊啊好大好硬啊啊啊啊啊 | 国产精品视频| 亚洲欧美一区二区不卡视频播放| 亚洲成人色情五月天丁香花| 嗯嗯啊好大| 97天天爽| 有码人妻系列| 久久久久密臀一区二区| 久久精品一区二区三区蜜桃臀| 久久111| 91久久18禁| 国产成人AV麻豆| 久久一留热品黄| 高潮嗯啊性感美女久久久| 亚洲91亚洲| 国产性感骚丝袜在线| 爱射综合| 九九热九九热| 久草精品一区| 综合97久久| 久久激情视频| a级免费在线观看| 熟妇的味道HD中文字幕| 九九热AV| 欧美少妇高潮久久91| 欧美伦乱爱| 国产精品久久久久久夜夜夜夜| 99热导航| 久久久久久中文| 九九热av| 自拍偷拍草一草| 91欧洲国产成人久久精品网站| 国产乱伦视频污| 岛国毛片在线观看免费| 国产 v乱码一区二| 天天日日舔舔| 中文字幕精品三级久久久| 国产av色网| 国产精品网址| 超碰精品日韩欧美国产| 亚洲 自拍偷拍 欧美| 久久久久国产精品喷潮免费观看臀 | 天天爱天天操| 国产中文大片资源中文字幕| 中文字幕精品人妻丝袜| 久久久久久久久久久久97| 蜜臀99精品国产高清在线观看| 老熟女阿 国产91| 精品九九| 欧美拳交在线播放| 综合激情一一91| 欧美日韩久久精品爱爱| 国产超碰| 999九九九九国产动| 天天噜| 岛国网址国产| 成人日韩中文字幕| 97超级久久| 另类图片欧美激情综合| 东京热激情视频一二三区| 在线观看视频91| 欧美成97爱| 国产乱伦亚洲| 亚洲精品一二三四区| 超碰综合97在线| 无码 黑人一区二区三区| 欧美操人| 久久一区二区蜜桃| 97人妻碰碰中文无码久热丝袜| 日韩国产十八禁| 久久尹人大香焦视| 色爱综合网| 日本一久是| 明星性猛交ⅹxxx乱大交| 男人兔费天堂| 春色综合免费| 欧美日韩99| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 天天欧美| 91最新综合| 无码人妻一区二区三区四区老鸭窝| 好爽免费视频| 亚洲日韩AV视色| 又黄又硬又粗又长国产视频| 5月婷婷6月六月丁香| 人妻加勒比东京热| 都市久久精品激情亚洲| 夜夜操av亚洲一区二区| 青娱乐休闲视频在线观看| 亚洲日韩美女中文字幕乱| 国产精品乱码久久久久久久久久久久| 欧美区亚洲区偷拍区| 久久性爱免费送| 国产超碰97| 人人插人人搞人人操| 亚洲黄a三级三级三级看三级| 日韩无码a片| 一区二区首页| 精品亚洲一区在线观看| 九九九九九九九九九五码| 天天躁日日躁成人字幕aⅴ| 麻豆av一区二区三区| 无码人妻精品酒店| 亚洲蜜臀懂色| 国产精品色片一区二区| 色噜噜人妻av中文字幕| 欧美日韩成人在线| 欧美色吧综合| 中文字幕黑人大片| 亚洲精品一区二区精品| 亚洲少妇色图自慰直播| 国产精品一区二区黄片| 欧美第二页| 久久九九一区二区三区成人| 日韩激情中文字幕有码| 国产精品一二三区18| 一区二区三区色综合| 在线观看岛国有码| 日韩欧视频| 欧美制服网站美腿丝袜| 精品中文字幕第一页| 欧美天天综合在线| 狠狠图片青青草| 欧美,日韩,亚洲视频| 欧美人妻一区二区| 五月激情小说| 黑人狂躁日本妞一区二区三区| 成熟熟女国产精品一区二区 | 久久久91福利姬| 色色色99| 午夜亚洲国产理论秋霞| 加勒比99999| 北京专精特新企业招聘信息| 一区操逼日比视频| 国内精品嫩模A∨私拍小视频| 99色婷婷中文字幕乱色| 国产精品视频一区二区三区八戒| 亚洲天堂男| 欧美91精彩| 婷婷五月花| 一起草日韩| JuliaAnnXXX888| 天堂射| 精品色色| 国产网站在线播放| 久久大黄片| 欧美图片色五月天| 青青国产在线拍揄自揄拍| 亚洲精品aa久久伊人| 人妻少妇精品| 绯色AV粉色AV蜜臀AV| 综合色啪| 国产黄色 A 片免费看| 国产精品久久久吖| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国产精品白丝| 久久在肏| 国产熟女高潮一区二区三区| 久久中日麻豆| 中文字幕天天操| 国产欧美一区二区| 久久婷婷五月天| 亚洲精品亚洲人成在线麻豆| 日本操大逼| 国产美女销魂在线观看不卡| 激情小说亚洲色图| 精品久久久av无码免费| 嗯嗯啊啊啊好爽| 亚洲好色人妻| 91热热色| 久久久国产护士丝袜美腿一| 欧美96交| 99av| 男女无套 免费网站| 夜夜高潮夜夜爽夜夜爱爱一区| 亚洲综合网图| 久草精品热视| 狠狠狠一区二区三区| 大地资源在线观看中文第二页| 久久一区二区高清免费| 巨爆乳一区二区爆乳区| 国产精品一区av在线| 人人妻人人玩人人澡人人爽| 麻豆精品一区二区三区四区免费观看| 97人人夜| 久久久青青草| 好爽视频在线观看视频| 欧美最婬乱婬爆婬牲视频| 久操影视| 精品国产一区二区三区av在线资源| 中日韩熟女| 日本高清一区二区在线| 日韩三级一区 | 亚洲 图片 综合91| 大香蕉欧美伊| 成人在线午夜视频一区| 理论久久婷婷网 8| 啊啊啊在线观看免费视频| 精品人人| 亚洲色情在线影视| 久久精品区| 熟女探花啪啪| 99久久婷婷国产综合| 97在线精品| 天天摸,夜夜摸| 麻豆久久久久久久久丝袜| 日han少妇无码| 男人的天堂久久狠| 国产999精品久久久| 视频国产成人精品日本亚洲18| 国产偷拍网站| 亚洲黄色a级片| 国产无码高清操逼视频| 91|九色|国产熟女| 亚洲AV高潮| 欧洲Au麻豆| 操老熟女AV| 精品对白久久不卡| 色官网色综合| 欧美日韩夜夜| 日日碰视频网| 日本性爱视频一级| 熟女人妇一区二区三区| 色爽爽文学| 热久日综合| 天天夜夜rb| 国产精品另类一区大香蕉| 亚洲无码 国产无码| 婷婷去俺也去六月色| 久久99网站| 人人色人人射人人妻| 99热精品青草在线| w w w.久久精品| 亚洲国产高清福利视频| 婷婷另类小说| 日本人妻伦在线中文字幕| 自拍内地三级在线观看| 大香蕉综合| 国产 大胆 对白| 东京热天堂网| 丁香五月久久| 超碰97男人| 日韩有码专区| 国产AV超爽| 四虎国产成人精品免费一女五男| 97综合国产| 精品黑人一区二区| 国产后入清纯| 肉嘟嘟www视频在线观看高清| 欧美亚男人的天堂| 大香蕉www.超碰| 激情五月天婷婷| 天天操天天射青青草| 色九久| 不卡啪啪视频| 四虎影视永久在线观看精品免费网站| 久久直播国产| 91精品国产乱码| 国产极品精品美女视频| 免费久久9999| 亚洲免费成人在线高清无码视频| 国产性刺激| 69精品| 中文字幕二区日韩天堂| 校园春色宗合网| 超97在线精品视频| 一区二区播放| 色综合五月天| 国产精品又黄又猛又粗| 丰满人妻一区二区三区在线| 精品国产av一区二区三区四区入口| 亚洲激情网一二三四区| 色噜噜国产精品视频一区二区| 99无码视频| 亚洲欧美洲综合| 男人的天堂2010| 亚洲在线a| 欧美操人| 欧美性生活男人的天堂| 91欧美综合在线| 日本在线不卡v二区| 九九九九精品一区| 婷色五月天| 青青在线视频日韩欧美| 熟妇一区二区三区| 91c色| 欧美激情一| 国产女人和拘做爰视频| 亚州高清av| 国产多人在线观看视频| 亚洲日韩欧美一区二区| 欧美激情性爱视频网站| 淫纸中9区| 曰韩精品九九无码| 亚洲男人综合| 九九九九一区| 亚洲s在线观看| 国产精品美女在线一区| 亚洲第一男人天堂| 999九九精品| 亚洲成人免费在线| 东京热视频网| 日韩电影中文字幕| 国产女上位好爽在线| 国产91av在线播放| 天躁夜夜躁2021| 人人喜人人妻| 午夜高清成人在线视频| 2018天天日天天日| 亚洲成人AB| 9超碰免费| 久久性爱大全| 亚洲密乳AV| 东京太热男人的天堂久久久| 狠肏骚人妻| 青青操综合网| 色色色日本| 欧美最大综合网| 人妻日日夜夜精品| 久久av一级av少妇av高潮| 九九热av| 亚洲欧美国产精品久久久久久久| 97人人中文网| www.夜夜| 国产又操| 搡老人老9丨女老熟人| 国产99热| 快灬快灬 一下爽蜜桃在线观看 | 丝袜视频网国产90| 国产精品密臀网在线观看| 亚洲Av无码成人精品国产| 久草精品国产99| 色噜噜国产精品视频一区二区| 另类图片五月天| 成人五月天色网| 激情亚洲天堂| 小草精彩毛片| 亭亭丁香激情| 亚洲综合网电影91| 美腿色图| 97超碰jingpin| 99热18| 久草尤物| 国产黄色小视频网站| 骚熟女AV网| 91久久国产综合精品| 精品99999久久久久久| 精品久久99| 日韩强奸av| 欧美一区二区三区不卡高清视频| 女人精品内射国产99| www亚洲欧美| 91在线观看,天天综合| 国产精点久久久成人| 亚洲成人激情小说视频| 人妻在线臀日韩| 久草这里只有精品| 乱伦av国产| 婷婷九月国产| 亚洲操逼视频网站| 四虎影视永久在线观看精品免费网站 | 免费看一级a性色生活片久久无| 亚欧美天堂在线| 少妇一级婬片免费放一级a性色.| 九色黄站| 国产精品白丝AV| 日韩人妻大香蕉| 亚洲性感丝袜诱惑在线观看| 日本A级视频| 国产亚洲日本精品在线| 成人aⅴ一区二区三区| 色老牛| 久操九九九九| 天天弄天天操| 亚洲av青草久久一区二区| 国产日韩人人| 久久久草草精品| 91丨熟女丨丰满熟女| 欧美性,色九九| 东北操逼| 伊人网高清| 日韩精品一区二区人人人| 亚洲怡春院| 少妇的嫩逼图片| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 国产一区二区a毛片| 91free福利| 日韩中字av一区| 久久熟女精品不卡一区| 98久久| 亚洲色图欧美视频| 亚洲午夜av| 日本啊啊啊啊啊视频| 七久久久| 91精品国| 在线a v| 久久这里都是精品| 99热一区二区三区四区| 在线毛片片免费观看| 国产亚洲禁久一区二区 | 亚洲综合69| 熟妇一区二区| 日本中文字幕在线电影| 色婷婷综合久久中文字幕雪峰 | 国产成人在线观看综合| 色天使大香蕉| 蜜臀网 一区| 午夜高清成人在线视频| 天天综和| 人人操人人色网| 精品人妻一区二区视频| 9丨久久九九九| 尤物网址| 久久久精品日本一道| 精品人妻少妇| 日韩探花精品在线视频| 亚洲男人综合网| 国产精品96| 精品久热| 亚州五月| 色综合色色| 高清不卡 中文 人妻| 国产精品区在线12p| 色性荡荡荡荡视频| 国产高清自拍| 久久久艹艹艹| 亚洲欧洲日本精品中文a∨| 婷婷在线视频| 91精品人妻| 久久亚洲av成人无码国产| 国产精品久久久久久久久久二区三区| 久久久久久久伊人精品| 亚州 综合 色图| 九九九热| 久草婷婷| 亚洲一区二区三区四区视频| 亭亭在线资源| 国产精品久久久久av| 日韩中文9| 欧美专区日本专区| 国产精品97超碰| 欧美日韩国产色图在线| 欧美丝袜美女电影一二三四区| 欧美性爱日韩性爱| 美女干逼2| 人妻aa| 51一区二区三区| 九九99精品视频在线观看| 天天日天天干天天摸天天操| 亚洲色天堂日韩中| 欧美人体性爱互联网第一页婷婷日本| 97欧美精品综合| www.色吧5.com| 成人热久久精品| 一级性爱网| 先锋音影AV| 中文久久爆乳| 久久久com| 国产亚洲精品久久久久小| 97露脸精品丝袜| 人人操人人叉人人插人人| 啊啊啊不要嗯嗯在线观看| 97av在线视频| 欧美成年人性爱视频免费观看| 综合网久久| 中文字幕亚洲热播人妻| 久久超碰网| 欧美黑人与女人91~| 亚洲91在线播放影院| 久操影视| 欧美性色综合网| 欧美色综合网| baiduhicn.com。| 在线不卡视频| 强奸乱伦 亚洲一区| 在线 欧美 亚洲| 另类天堂| 凹凸视频在线观看伊人| 日韩情色一区二区| 97碰碰日本乱偷人妻中文的| 五月丁香综合| 久久直播国产| 国产深夜福利| 亚洲区 欧美区| 日本三级韩三级99久久| 日本色色的视频| 人人做,人人操,人人摸| 日韩精品午夜操呦呦不卡影院 | 91丝袜在线播放| 色悠久久久av| 神马久久久久眼| 亚洲av无码成人精品国产| 精品人妻一区二区三区四区不卡在| 久久一本大香蕉| 伊人97色天使| 婷婷五月天福利| 在线观看精品国产免费| 伊人网免费视频| 91日韩国产欧美亚洲另类精盘州至城都| 一区| 熟女欧美日韩综合婷婷| 色噜噜狠狠色综无码久久合欧美| 日本性爱网址| 激情抓乳插进去啪啪啪日韩| 欧美日韩国产成人高清| 亚洲天堂男人在线| 久久草在线综合视频| 1000部熟女视频在线观看| 97精品免费视频网站| 99久久99九九99九九九| 91亚洲丝袜| 欧美在线视频观看一二三四区高清| 日韩成人色图| 蜜臀精品1区2区| 蜜桃成人1区2区3区| 97色婷| 国产a级午夜毛片| 大香蕉一线视频| 色综合天天| 亚洲色色探花| 人人操人人插人www| 岛国大片在线观看网站入口| 777AV电影| 操逼日批| jizzjizz欧美| 美中日韩无码| 一块操欧美性爱| 欧美人人AAA| 亚洲超碰在线| 色噜噜日韩精品| 漂亮人妻被强中文字幕hd| 精品无av| 欧美日韩色| 国产女人视频三四五区| 亚洲av青草久久一区二区| 国产精品视频内谢女人| 日本久久女同性恋视频| 日韩中文字幕国产| av最新免费中文字幕| 亚洲成人福利电影免费| 日韩中文字幕视频| 亚洲图片欧洲图片aⅴ| 久久人人爽人人爽人人片Ⅴ| 国产亚洲综合欧美一区| 久久免费中文字幕在线观看| 口爆欧美91| 欧美亚洲综合999| 日本亚欧爱爱| 久操电影| 国产精品点击进入在线影院高清 | 欧美黄片视频在线观看免费| 日韩av女优在线免费一区| 亚洲网自拍| av久日| 嗯嗯啊啊啊好爽| 国产粉嫩蜜臀av一区二区三区| 2017人人操,人人摸| 亚洲AV秘 精品久久老牛影视| 视频分类 国内精品| 嗯嗯啊中文字幕| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产一区二区三区中文字幕| 中文字幕在线观看丝袜| 亚洲揄拍网| 最新制服中文第一页| 日韩熟女无码| 国产免费永久精品无码| 丝袜制服字幕在线| 中文字幕熟女人妻丝袜丝| 亚洲日韩国产精品| 黄片www.| 97这里都是精品| 青青草依人大香蕉| 377p欧洲日本亚洲大胆| 艹我哪美一区无码| 青青青草伊人精品| 成全动漫视频观看免费下载| 99爱爱| 9999亚洲电影| 思思久热在线精品66| 欧亚成人| 操死我干死我| 伊人网高清| 日本操嫩b网| 在线综合 亚洲 欧美中文字幕 | 小草三级久久观看| 蜜桃臀av一区二区| 日韩亚洲精品一区二区| 九九九久千久久激情蜜桃在线看 | 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 久草五月| 国产99999久久精品| yazhousetuoumei| 麻豆熟妇乱妇熟色A片在线看| 日韩人妻 中文字幕| 亚欧美天堂在线| 亚洲国产综合图区中文字幕| 激情丁香五月| 亚洲另类色综合网站| 国产偷拍自拍在线视频| 人人妻人人操人人乐| 酒色综合网| 久久免费精彩视频| 伊人嫩草| 日韩性爱高清免费视频| 亚洲欧美综合网站| 久操网线| 欧美精品,四区。五区| 以及麻豆国产入口在线观看免费| 亚洲免费精品一区| 亚洲另类欧美精品| 欲色影视综合吧| 久9re热视频这里只有精品| 亚洲无套久久嗯嗯| 中文一区二区三区影院| 6080yy午夜理论三级一区二区三区无码| 亚春色色| 天堂蜜桃无码视频一区二区| 91色插| 欧美美女啪啪视频| 97啪啪| 青青草在线视频欧美| 亚洲一区二区在线观看91| 麻豆天美国美国产AV| 国产 日韩,欧美 自拍| 国模限制级电影| 欧州一区二区三区四区| 久久av色| 国产乱码精品一区二区三区四川| 成人情色综合网| 爱我干综合| 色悠久| 色婷婷成人综合| 老熟女乱子伦中文字幕一区二区| 人妻少妇久久| 激情99| 澳门黄片一香蕉视频| 色超碰综合| 精品一区二区成人动漫| 婷婷精品国产欧美精品亚洲人人爽| 日韩乱伦视频| 日本淫乱女一区二区三区视频| 怡红院怡春院| 国产呦精品一区二区三区下载| 嗯嗯嗯啊啊在线观看| 少妇免费视频| 日韩成人性爱AV| 欧美性爱超碰97| 97色97好| 操逼逼无码| 午夜国产综合视频在线观看| 俺也射| 91婷婷伊人狠人| 天天干夜夜一操| 亚州色综合| 激情婷婷丁香| 综合日韩激情另类图片| 看日韩操逼| 日韩无码一级黄色av片| 丝袜色综合| 色婷婷aV一区二区三区麻豆综合| 亚洲成人福利电影免费| 97超碰色色| 老色鬼成人精品视频下载大在线观看| 中文字幕 人妻不满 在线视频| 日韩熟女乱伦中出| 97香蕉网| 夜夜嗨TV| 青青操视频在线| 蜜桃视频精品一区二区| 国产精品视频白浆免费| 亚洲精品国产无码高清| 欧美丝袜中文字幕07在线| 少妇专区一二三四五| 天天操天天插| 91性高潮久久久久久久久| 中文字幕在线观看永久| 欧美综合第一页| 在线 欧美 亚洲| 欧美性,色九九| 色五月激情综合网| 黑人无码一区二区| 免费精品国偷自产在线在线| 97超碰9| 欧亚韩国999| 另类 综合 日韩 欧美 亚洲| 亚洲精品久| 日韩AC| 国产精品爽爽va在线观看98| 91久久青青草原精品| 伊人九九九| 九九九不卡| 国产中午字一暮区| 色悠久久久av| 亚洲综合校园春色| 91天天爱| 欧美熟妇亚洲版| 久久最新视频免费观看| 一个人在线看的黄色电影网站| www.久久| 婷婷五月成人| 一区二区偷拍拍视频| 狠狠激情综合狠狠操中文字幕| 精品一区二区人妖| 精品国产乱码久久久久久口爆网站| 日韩av电影成人在线| 久久受www免费人成| 高清国产无码av| 蜜臀一区二区三区在线 | av中亚| 狠狠操使劲操| 成人免费性爱视视| 操B视频日韩无码| 无套内射人妻在线播放| 在线岛| 欧美日韩国内不卡| 999国产精品999| 婷婷五月天激情小说| 色五月婷婷麻豆在| 免费看毛片操穴| 欧美三级免费伊人| 91九九九馒头| 欧美乱妇狂野欧美在线视频| 另类成人首页一区| 夜夜嗨一区二区三区三州加勒比 | 亚洲成人一区二区精品| av在线资源| 婷婷三区| 欧美天堂超碰97| 丝袜视频网国产90| 精品人妻视频一区二区在线播放| 欧美性爱一区二区三区| 国产强奸乱伦欧美| 最新av网站在线观看| 五月天玖玖资源站| 黑丝内射一区二区三区| 日本不卡高清免v欧美日韩在线观看| 91麻豆天美传媒HD| 怡红院怡春院| 天天搞欧美| 亚洲啪啪综合?v一区综合精品区| 亚洲天天做日日做天天谢日日| 国产精品探花视频| 亚洲,欧美,春色,另类| 国产性感骚丝袜在线| 国产精品久久久久久9999| 亚洲97在线观看| 三级激情网站| 99热精品在线观看| 精品一区96| 少妇蹲下买菜露大唇0| 中文字幕三四区| 色噜噜精品一区二区三| 欧亚综合一卡二卡中文字幕| 加勒比海成人视频网| 日韩精品啪啪啪| 亚洲免费在线探花| 黑丝内射一区二区三区| 精品一久久久| 一区二区三| 色在线综合| 激情五月天综合网| 久日综合网| 2020中文字幕在线观看| 蜜桃av综合网发布| 人妻 欧美 中文| 春色91| 夜嗨影院| 久久久久9999精品九九九| 中文区中文字幕免费看| 操逼www.| 一区二区三区在线资源| 亚州九九九精品视频| 伊人天天久久动态图| 日韩乱伦视频| 91 亚洲情侣偷拍 久久| 五月天婷婷在线看| 激情开心五月天| 成人夜夜| 日韩一级成人毛片免费观看| 综合干干干av久久久综合网| 一区二区高清视频| 六月色婷婷| 美熟女逼导航AV操逼| 岛国片在线播放| 大香蕉碰碰| 欧美AB在线| 中文字幕五区| 精品无人区麻豆乱码1区2区图片| 人人摸人人摸人人干| 久久久不卡区一区二区三区久久久| 欧美+日产+中文| 丁香五月影院| 肥佬影院91| 久久婷婷热| www男人天堂| 午夜欧美女人操逼| 美女91av| 精品婷婷| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 人人看欧美性爱| 久久超碰免费的| 午夜精品久久久久久久久久蜜桃| 超碰精品| 综合av社区| 制服少妇欧美| 亚洲?V高清一区二区三区尤物| 美女啊啊啊啊啊啊啊| 性夜影院爽黄A爽免费动漫| 色色色色色色色色色色色色色色综合 | 97在线观看播放视频| 97视频620| 国产91精品福利在线| AV色五月天| 嫩草影院在线观看精品| 欧美精品不卡一二三四在线91| 在线99热| 网友自拍第1页| 国产精品国产自产拍高清AV| 人人做,人人操,人人摸| 久久国产精品,久久国产| 秋霞成人一级在线观看| 国产按摩一区二区三区| 日韩无码极品| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 久久精品72| 中文字幕五月婷婷免费| 国产一| 夜夜嗨AV一区天天| 欧美国产精品久久九九| 性交一区二区在线播放| 色99在线| 国产在线观看一区二区三区| 青青草玖玖爱| 狠狠干,狠狠操| 国产一级内射高清视频| 日韩精品大香蕉伊人在线| 精品婷婷| 91精品人| 后入式999| 嗯嗯,啊啊,国产精品| 久久性生大片免费观看性| 久草在| 2010男人的天堂| 欧美成年人性爱视频免费观看| av线电影| 伊人综合色网| 久久男人精品| 好爽视频在线观看视频| 欧洲亚洲综合| 久久草草欧美精品| 风流老熟女一区二区三区l| 久久久久久九九九| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 3d成人精品一区二区| 尤物一级在线免费观看| 亚洲中文字幕妇伦久久| 欧美性第1页| 黄页| 96久久精品一二三区色欲| 成人婷婷丁香| 午夜精品久久久久久久99| 丰满人妻-区二区三区| 久久久精品91八戒| 在线观看一卡二卡| 国产精品69久久久久久久| www.99色| 婷婷激情一区二区三区俺也去| 97在线免费公开视频| 激情国产乱伦Av| 夜夜操天天肏| 亚洲?V高清一区二区三区尤物| 精品国产人成在线| 人妻精品一区二区全免费| 99人妻| 久久99亚洲精品久久99果| 天天操天天看| 欧美黑人精品一区二区| 女同亚洲欧美一二三区久久电影| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 美女午夜福利免费视频| 久久精品99久久久久久| 欧美日韩亚洲一区二区在线观看| 中文有码第五页| 翔田千里爆乳巨臀无码| 欧洲射精91| 亚洲少妇综合在线播放| 日本天堂在线播放| 色婷婷丁香五月| 国产AV中文| 人妻久热在线| 日韩一级成人毛片免费观看| 亚洲欧美日韩电影网站一区 | WWW.操逼.COM| 欧美伦乱爱| 国产精品无码AV网站| 国产97视频| 欧美婷婷久久| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 天天爽天天爽| 啪啪啪东京| 人妻欧美| 久久久精品九| 精品人妻一区二区三区视频| 91三级理论片播放器| 天天综合网亚洲综合网| 欧洲亚洲人妻无码中字久久三区四区 | 日本加靬比网站发布页| 午夜丁香| 国模精品一区二区三区苹果色戒| 人妻丝袜二区| …中文字幕亚洲乱,97人妻无码费视…| 婷婷五月天AV| 免费一级视频特黄色大片| 亚洲欧美国产va在线播放频| 国产欧美另类久久久精品课程| 欧美亚洲综合色| 亚洲欧美日韩夜夜| 国产综合操逼高清| 久热在线精品免费观看| 国产无码高清操逼视频| 天天看天天日天天操| juliaann丝袜| 中文字幕一区二区无码成人| 91天堂| 亚洲精品九九九| 唯美清纯 妖精视频| 美女91网址 | 日韩国产精品人妻无码久久久| 久草久日| 熟妇无码视频三区| 33044男人的天堂深夜备| 一区二区三区一亚洲中文字幕、综合区灬 | 国产原创自拍| 97天天摸天天碰| 日韩一级二级在线| 91超碰碰在线| 精品美女少妇一区二区三区| 国产1727欧美| 国产欧美另类久久久精品课程| 国产又粗又长又大的视频| 青娱乐妇女性生活| 精品91| 黄色高清无码无码破解免费暗网| 亚洲高清无码免费观看视频| 操操碰| 日韩激情视频| 久久久999国产| 神马午夜久久| WWW啪啪的com| 亚洲精品99| 国产精品电| 日韩成人高清一区二区| 999岛国大片| 国产噜噜噜噜噜久久久久久久久| 很狠操| 黄骗免费网站| 五月婷婷六月激情| 免看60秒涩涩视频| 十八禁的黄污污免费网站| 91色碰| 9久久精品| 操逼www.| 欧美论理片| 亚洲国产精品成人综合| 爽爽歪在线视频| 蜜臀99久久国产| 亚洲欧美精品一区天堂久久 | 久久黄色性爱视频| 欧美极品少妇交| 91少妇| 99热亚洲天堂| 性91| 五月丁香| 欧美熟妇精品黑人巨大91| 熟女精品va中文字幕| AV丝袜东京热| 无码天天操| 亚洲色欧| 国内自拍 日韩激情 99| 99在线精品观看视频中文| 手机看av网站在线看| 婷婷探花久久精品一区| 日韩免费性爱视频在线观看| 清纯唯美综合| 乱人伦 国语对白:视频直接看| 亚洲全色网| 丰满少妇一区二区三区四区观看| 国产又黄又粗又猛大片| 视频在线观看一二三区| 精品一区二区成人| 久草综合网| 久操99| 日韩国产成人自拍视频| 在线97视频| 天天享受天天看| 少妇一线天久久久久久| 免费啪啪av| 麻豆美女丝袜人妻中文| 啊啊啊不要好爽日韩无码一区| 欧美性爱五月天| 人妻少妇久久| 97欧美色资源| 丁香婷婷色五月| 欧美gv在线观看| 青青五月天| 肉丝无码中文高清| 国产一区二区三区不卡手机在线| 性爱视频无打码在线观看| 97欧美视频| 夜夜国自区| 99最新日韩偷拍视频| 精品久久青青草| 开心五月激情网| 日本www操操操| 欧美一区二区亚洲天堂| 伊人骚琪琪亚洲天堂网站| 日韩有码中文字幕女同性恋| 欧美亚洲系列| 久男人久久| 欧美色图片欧美色图| 黄页大片在线观看| 天天综合色电影| 国产免费永久精品无码| 熟女突然公开看18禁影片 | 国产精品一区二区后入| 成人精品视频| 欧美久久婷婷| 韩日巨乳美女免费视频在线观看| 夜夜福利| 精品综合久久久久久97| 亚洲男人天堂视频| 91精品操美女| 亚洲色电影在线| 欧美日韩资源| 国产精品人人爽人人做可爱福利| 欧美视频一| 中文字幕亚洲热播人妻| 欧美色欧美| 超碰人人操97碰| 97天堂| 精品网站9999| 中文字幕文字幕无码一区二区三区电影99| 大香蕉99热| 一本色道久久综合亚洲二区三区| 成人天天爽| 91视频综合| 丰满人妻一区二区三区四区| 天天做天天爱夜夜爽毛片试看| 九九九九精品一区| 五十路熟女,国产欧美精品区一区二区三区| 男人天堂免费| 加勒比av网| Sekablack无码一区| 99热在线观看| 欧美黄页在线| 麻豆区久久久久亚| 97在线观| 极品色www影院| 久久精品老司| 五月丁香黄色网| 五月综合色| 亚洲97网站| 很黄很色的视频在线观看| 性爱视频久久| 日夜精品| 国产亚州日韩欧美看片| 亚洲自拍一区夜夜操| 碰碰97| 国产刺激视频| 人人操欧美风骚| 国产亚洲一黄| 国产精品99999| 亚洲欧洲国产综合av| 天天超级碰碰碰| 色狠狠综合| 97超碰超| 久久的网站啊啊啊啊啊| 欧美亚洲特P| 欧美嫩性色| 激情五月综合开心五月| 久久综合日韩亚洲欧美| 欧美十八禁视频| 日韩在线97| 日韩欧美中文日韩欧美色| 天美麻花大全视频| 精品国产乱码久久久久久蜜臀| 人妻日日夜夜精品| 玖玖久久久| 日韩精品高清资源在线| 国产精品直播在线观看直播| a人欧美综合天堂麻豆| 国产福利精品最新在线| 人人操超碰在线| 不卡码视频| 午夜黄色免费在线观看| 91天美| 污电影在线观看| 丁香五月电影| 岛国黄| 夜夜高潮夜夜爽夜夜爱爱一区| 青青草在线视频人人想人人上| 多乙久久久久久| 欧美色宗合| …中文字幕亚洲乱,97人妻无码费视… | nuu12国产麻豆精品| 蜜臀人妻少妇久久在线观看| 一级A啪啪啪啪| 樱花蜜乳av| 99亚洲国产精品色一区二区三区| 久久精品高清无码一区| 青青草视频爽一爽| 欧美1727免费观看视频| 2019久久久久久久久福利| 波多野结衣之双飞调教在线播放| 91岛国动作片| 看看日B真人视频|