久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Android Fragment監(jiān)聽返回鍵的一種合理方式

瀏覽:46日期:2022-09-21 17:49:05

開場(chǎng)

以下場(chǎng)景為杜撰:

產(chǎn)品經(jīng)理:“小羅,這個(gè)信息發(fā)送界面,如果用戶輸入了內(nèi)容,點(diǎn)擊返回鍵的時(shí)候,要先詢問用戶是否保存草稿箱哈”。

小羅:“收到,這問題簡(jiǎn)單。”

說完小羅就準(zhǔn)備著手處理,然后卻發(fā)現(xiàn)信息編輯界面是一個(gè)Fragment,然而Fragment并沒有提供返回鍵點(diǎn)擊的直接處理;小羅雖菜,但是摸魚也摸了些年頭了,這問題難不倒小羅。

小羅心想,反正Activity提供了onBackPressed方法,再不濟(jì)的情況把這個(gè)操作分發(fā)到Fragment中去就好,可是對(duì)于處女座的小羅來說,在解決問題的基礎(chǔ)上,起碼代碼要寫的漂亮一點(diǎn),寫的漂亮一點(diǎn)心里就舒服一點(diǎn),心里舒服一點(diǎn)就...(此處內(nèi)容很長)。

小羅堅(jiān)信“條條大路通羅馬”,我們不僅要到羅馬,還要風(fēng)風(fēng)光光的去,所以對(duì)于“Fragment如何監(jiān)聽返回鍵的點(diǎn)擊”,小羅決定下點(diǎn)功夫;

為什么關(guān)注的點(diǎn)是Fragment去監(jiān)聽返回鍵,而不是其他?其實(shí)在現(xiàn)在的開發(fā)過程中,F(xiàn)ragment的使用比重是非常大的,對(duì)于個(gè)人而言,幾乎整個(gè)工程的界面實(shí)現(xiàn)都是基于Fragment而非Activity。

一、最lowB的方式(不推薦)

這就是小羅心里的預(yù)備方案,在實(shí)在沒有辦法的時(shí)候會(huì)采用此方法,也就是前面提到的,我們可以在Activity執(zhí)行onBackPressed時(shí),分發(fā)到Fragment中去;那我們用什么來分發(fā)呢?這個(gè)分發(fā)就好比是連接Activity和Fragment之間的一個(gè)紐帶,雙方均能夠訪問到這個(gè)對(duì)象就可以了,所以一個(gè)可以的選擇之一是使用ViewModel,當(dāng)然還可以有其他選擇,在此就不細(xì)聊了。

二、使用OnKeyListener(不推薦)

這種方式可能不常用,不容易想到這方面,所以這種方式也不推薦,簡(jiǎn)單做個(gè)了解;

通過設(shè)置View的OnKeyListener來監(jiān)聽返回鍵的處理,此方法也沒什么大的弊端,只是要注意以下兩點(diǎn):

1、如果把這個(gè)功能封裝在Fragment基類中的話,可能存在被覆蓋的問題;比如在基類中設(shè)置了OnKeyListener,而子類也需要設(shè)置OnKeyListener,此時(shí)設(shè)置的監(jiān)聽則會(huì)替換默認(rèn)設(shè)置的監(jiān)聽,從而導(dǎo)致意想不到的可能,不過此問題幾乎不太可能發(fā)生。

2、需要注意這種方式將會(huì)改變返回鍵處理的順序,也就是會(huì)先處理OnKeyListener的回調(diào),再處理Activity的onBackPressed,所以要注意這個(gè)關(guān)系。

三、Jetpack提供的方式

其實(shí)對(duì)于返回鍵的分發(fā),官方已經(jīng)做了支持,在Activity中提供了一個(gè)用于分發(fā)返回鍵事件的對(duì)象,通過調(diào)用Activity的getOnBackPressedDispatcher()方法得到這個(gè)對(duì)象,由于這個(gè)對(duì)象是在比較底層的androidx.activity.ComponentActivity中提供的(AppCompatActivity->FragmentAcitivty->androidx.activity.ComponentActivity),所以在Fragment中可以直接拿到這個(gè)對(duì)象添加回調(diào);

官方資料入口

//官方使用示例 public class FormEntryFragment extends Fragment { @Override public void onAttach(@NonNull Context context) { super.onAttach(context); //定義回調(diào) OnBackPressedCallback callback = new OnBackPressedCallback( true // default to enabled ) { @Override public void handleOnBackPressed() { showAreYouSureDialog(); } }; //獲取Activity的返回鍵分發(fā)器添加回調(diào) requireActivity().getOnBackPressedDispatcher().addCallback( this, // LifecycleOwner callback); }}

簡(jiǎn)單明了,這個(gè)事情好像到此為止了~~

但隨著深入了解,事情似乎沒有這么簡(jiǎn)單,經(jīng)過源碼分析和資料收集,發(fā)現(xiàn)如果直接使用會(huì)存在以下弊端:

1、Fragment回調(diào)處理時(shí),無法向上傳遞

2、回調(diào)是否可用需要主動(dòng)標(biāo)記,而非運(yùn)行時(shí)確定

簡(jiǎn)單說一下OnBackPressedDispatcher分發(fā)返回鍵的流程:

//官方源碼 @MainThread public void onBackPressed() { Iterator<OnBackPressedCallback> iterator = mOnBackPressedCallbacks.descendingIterator(); while (iterator.hasNext()) { OnBackPressedCallback callback = iterator.next(); if (callback.isEnabled()) { callback.handleOnBackPressed(); return; } } if (mFallbackOnBackPressed != null) { mFallbackOnBackPressed.run(); } }

當(dāng)分發(fā)返回鍵事件時(shí),會(huì)倒序循環(huán)遍歷已經(jīng)注冊(cè)的回調(diào),如果回調(diào)isEnabled設(shè)置為true,則執(zhí)行回調(diào)的方法,分發(fā)結(jié)束;

那前面提到的弊端是怎么產(chǎn)生的呢?假如一個(gè)Activity有兩個(gè)Fragment A和B,均注冊(cè)了返回鍵點(diǎn)擊事件(有童鞋會(huì)說了,這種場(chǎng)景不太可能存在,確實(shí),這種場(chǎng)景是不多,但不代表沒有,做一些了解也不是壞事),并且兩個(gè)回調(diào)的isEnabled均設(shè)置為true,那么當(dāng)分發(fā)事件時(shí),會(huì)將事件分發(fā)給B,但是B此時(shí)并不需要處理返回鍵事件,但是B又沒有辦法再繼續(xù)將事件傳遞給A了;

“你傻啊,你B不執(zhí)行返回鍵事件,就設(shè)置isEnable為false啊”

“是啊,B不執(zhí)行事件是該設(shè)置為false,可是我怎么知道什么時(shí)候去把它設(shè)置成false?難道動(dòng)態(tài)綁定判斷條件的值進(jìn)行設(shè)置么?”

轉(zhuǎn)頭一想“咦,好像確實(shí)可以動(dòng)態(tài)修改回調(diào)的isEnabled值呢,將回調(diào)的值跟一個(gè)LiveData綁定不就可以了么!”理是這個(gè)理,但是我不愿意做額外的工作,我不愿這么干,誰知道動(dòng)態(tài)判斷條件到底有多復(fù)雜呢,難道我不可以在返回鍵點(diǎn)擊的時(shí)候去判斷么?

四、靈機(jī)一動(dòng),官方升級(jí)版(推薦方式)

官方的方式不是存在上面兩個(gè)弊端么,解決這兩個(gè)問題不就好了;所以結(jié)合官方OnBackPressedDispatcher和OnKeyListener兩者的優(yōu)點(diǎn),創(chuàng)建了andme.arch.activity.AMBackPressedDispatcher,在保留官方原有的功能的同時(shí),更改事件分發(fā)流程,并將返回鍵持有者一并傳入,用于解決一些更復(fù)雜一點(diǎn)的需求;

@MainThread fun onBackPressed(): Boolean { if (!hasRegisteredCallbacks()) return false val iterator = mOnBackPressedCallbacks.descendingIterator() while (iterator.hasNext()) { val callback = iterator.next() //判斷回調(diào)是否需要消耗事件在決定是否繼續(xù)傳遞 if (callback.handleOnBackPressed(owner)) { return true } } return false }

五、官方使用技巧版

這種方法其實(shí)是我在發(fā)布文章之后,群友提供的一種思路,說實(shí)話,非常有技巧,剛開始看到的時(shí)候眼前一亮;其核心原理是默認(rèn)注冊(cè)的回調(diào)是可用的,在回調(diào)執(zhí)行中,先判斷自己是否需要執(zhí)行回調(diào),如果不需要執(zhí)行回調(diào),則將自己的isEnabled設(shè)置為false,然后再調(diào)用OnBackPressedDispatcher重新分發(fā)返回鍵事件(由于此時(shí)已將自己設(shè)置為false,此時(shí)便不會(huì)響應(yīng)回調(diào)),調(diào)用方法之后再將isEnabled設(shè)置為true,巧用了遞歸,該方式不錯(cuò)的;

最開始群友提供的代碼有一丟丟瑕疵,以下為修正之后的代碼,在Fragment中定義這兩個(gè)方法,在需要綁定返回鍵監(jiān)聽的時(shí)候調(diào)用這個(gè)兩個(gè)方法之一即可(推薦調(diào)用與生命周期相關(guān)的方法);

fun addOnBackPressed(onBackPressed: () -> Boolean): OnBackPressedCallback { val callback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (!onBackPressed()) { isEnabled = false requireActivity().onBackPressedDispatcher.onBackPressed() isEnabled = true } } } requireActivity().onBackPressedDispatcher.addCallback(callback) return callback } fun addOnBackPressed(owner: LifecycleOwner, onBackPressed: () -> Boolean): OnBackPressedCallback { val callback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (!onBackPressed()) { isEnabled = false requireActivity().onBackPressedDispatcher.onBackPressed() isEnabled = true } } } requireActivity().onBackPressedDispatcher.addCallback(owner,callback) return callback }

但是經(jīng)過慎重思考,最終我還是沒有用這種方法,雖然這種方法在幾乎百分之八九十的情況下是沒有問題的,但是我認(rèn)為可能還是有場(chǎng)景無法滿足;

舉個(gè)例子,一個(gè)Activity添加了一個(gè)Fragment,這個(gè)Fragment又順序添加了A和B兩個(gè)ChildFragment,那在B執(zhí)行返回處理的時(shí)候,是想回到A還是finish呢?或者是其他呢,也是就是說我們無法確定,在Fragment執(zhí)行返回鍵處理時(shí),是否需要直接調(diào)用Activity.super.onBackPressed方法的可能。

我們永遠(yuǎn)無法預(yù)估用戶的場(chǎng)景到底有多復(fù)雜,需求有多變態(tài),所以盡可能的考慮把。

總結(jié)

綜上所述,我目前還是會(huì)繼續(xù)使用第四種我寫的方案,第五種方案也推薦,畢竟在絕大部分場(chǎng)景中都是沒有問題的那么我們考慮第四種方案到底是否可行?

1、功能性

滿足了功能需求,并且至少目前是沒有想到有任何可能出現(xiàn)問題的場(chǎng)景

2、侵入性

幾乎對(duì)用戶場(chǎng)景沒什么影響吧,只是對(duì)用戶提供了一個(gè)可見的處理返回鍵事件的方法而已

3、替換性

如果采用第四種方案,要更換成第五種方案,容易么?一兩句代碼的事情而已

或者更換成其他方案容易么?也是一兩句代碼的的事情而已

并且即便替換成其他方案,也不會(huì)對(duì)現(xiàn)有系統(tǒng)造成任何影響,因?yàn)閷?duì)于Fragment監(jiān)聽返回鍵這個(gè)需求來講,這個(gè)需求的核心就是需要一個(gè)在Fragment中處理返回鍵事件的方法而已,其他東西對(duì)用戶來講都是無感的所以總體覺得沒什么毛病;

如果你有更好的思路,歡迎溝通,不勝感激;

另外,上述功能其實(shí)并不僅僅支持在Fragment中處理返回鍵事件,理論上來說任何想要監(jiān)聽返回鍵處理的都可以通過Activity獲取AMBackPressedDispatcher對(duì)象添加回調(diào)即可。

Andme Github地址

到此這篇關(guān)于Android Fragment監(jiān)聽返回鍵的一種合理方式的文章就介紹到這了,更多相關(guān)Android Fragment監(jiān)聽返回鍵內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 亚洲一区二区三区免费在线观看 | aaaaaa黄色片 | 亚洲午夜av | 在线观看免费黄色 | 日日日日日 | 91亚洲国产成人精品性色 | 一区二区网站 | а_天堂中文最新版地址 | 男人的天堂在线视频 | 国产成人精品一区二区 | 国产一区亚洲 | av观看在线 | 精品伦理一区二区三区 | 午夜亚洲 | 国产日韩一区二区三区 | 欧美一级精品片在线看 | 精品久久久久久久久久久久久久久久久久久 | 精品一区免费 | 日韩国产欧美一区 | 色毛片| 亚洲黄色在线视频 | 国产精品久久久久久久娇妻 | 中文字幕成人 | 国产精品免费视频一区 | 伊人网网站| 日韩精品在线观看一区 | 亚洲黄色一级毛片 | 91麻豆精品久久久久蜜臀 | 国内精品国产成人国产三级粉色 | 亚洲精品成人av | 国产一区二区在线免费观看 | 久久精品一区二区三区四区 | 国产欧美日韩综合精品 | 亚洲一区在线日韩在线深爱 | 婷婷国产成人精品视频 | 狠狠操夜夜操 | 北条麻妃国产九九九精品小说 | 婷婷欧美| www在线视频 | 天堂精品 | 亚洲国产成人在线 | 国产亚洲一区二区精品 | 色天天综合网 | 91精品一区二区三区久久久久久 | 伊人一区| 亚洲免费在线看 | 美女久久 | 日韩福利视频 | 日本福利网站 | 国产精品久久久久一区二区三区 | 亚洲性视频 | av免费观看网站 | 九九视频这里只有精品 | 国产成人一级毛片 | 天天干夜夜拍 | 台湾佬亚洲色图 | 亚洲国产精品网站 | 国产成人精品免高潮在线观看 | 欧美激情一区二区三级高清视频 | 日韩三及片 | 国产精品久久免费看 | 91久久夜色精品国产网站 | 国产精品中文字幕在线播放 | 欧美日韩一区二区在线 | 天天舔夜夜操 | 久久午夜综合久久 | 国产91极品 | 日韩精品一区在线 | 91亚洲国产成人久久精品网站 | 91福利影院在线观看 | 色欧美片视频在线观看 | 亚洲国产欧美一区二区三区久久 | 91爱爱网| h片免费观看 | 欧美区国产 | 亚洲日韩欧美一区二区在线 | 久草 在线 | 国产大片aaa| 在线视频 91 | 欧美一区二区三区四区视频 | 久久久久久影院 | 国产成人91 | 99亚洲国产精品 | 国产高清一区二区 | 日韩有码一区 | 99精品免费在线 | 一区在线视频 | 国产毛片毛片 | 影音先锋资源av | 国产三级在线 | 国产精品久久久久久久久 | 国产精品久久久一区二区 | 久久免费视频3 | 丁香五月网久久综合 | 人人干视频 | 久久生活片 | 久久精品a级毛片 | 精品福利av导航 | 在线国产区 | 男女羞羞视频在线观看 | 久久人体视频 | 国产免费一区二区三区四区五区 | 成人一级视频 | 999成人网 | 欧美精品导航 | 手机在线观看av | 中文字幕第一页在线 | 亚洲视频在线视频 | 久久精品视频网站 | 韩日免费视频 | 国产精品日韩欧美一区二区三区 | 99国产精品99久久久久久 | 国产欧美一区二区三区在线看 | av在线一区二区三区 | 在线亚洲精品 | 爱爱网址 | 91成人免费看 | 国产毛片aaa | 永久av | 国产伦精品一区二区三区四区视频 | 亚洲精品久久久久avwww潮水 | 国产精品亚洲欧美日韩一区在线 | 99热成人在线 | 国产一级视频 | 中文字幕日韩一区二区不卡 | 不卡欧美 | 欧美综合一区二区 | 狠狠久久综合 | 一区二区免费视频 | 麻豆一区 | 欧美激情网址 | av福利在线观看 | 视频在线一区二区三区 | 男人的天堂久久精品 | 国产国拍亚洲精品av | 国产精品99久久免费观看 | 久草精品视频 | 日韩精品 | 欧美顶级毛片在线播放 | 久久精品网 | 国产一级一级特黄女人精品毛片 | 国产精品国产三级国产aⅴ无密码 | 午夜影院在线 | 精品国产乱码久久久久久影片 | 中文字幕av亚洲精品一部二部 | 久久综合社区 | 在线亚洲观看 | 日本黄色片免费 | 电影午夜精品一区二区三区 | 精品久久网 | 日韩欧美中文在线 | 国产成年人小视频 | 99热.com | 在线a电影| 91精品国产福利在线观看 | 9 1在线观看 | 成人免费视频视频在线观看 免费 | 成人国产一区 | 色xx综合网| 国产欧美日韩中文字幕 | 99精品国产高清在线观看 | 国产一级毛片国语一级 | 久久精精品 | 91精品久久久久 | 夜夜草 | 日韩国产在线观看 | 国产精品久久久久久久久久久久午夜片 | 91久久久久久久久久久 | 久久久久久久久久久久久九 | 国产精品日韩欧美一区二区三区 | 亚洲成av人片一区二区梦乃 | 日韩激情一区二区三区 | 福利视频一区二区三区 | 日韩免费在线观看视频 | 日韩精品一区在线 | 久久男人天堂 | 久草视频在线资源站 | 成人免费视频网站在线观看 | 杏导航aⅴ福利网站 | 国产成人一区二区三区 | 久久永久视频 | 成人a级网站 | 亚洲国产成人久久综合一区,久久久国产99 | 日日操天天爽 | 国产精品久久久久久久岛一牛影视 | 国产超碰人人爽人人做人人爱 | av免费观看在线 | 国产欧美日韩综合精品 | 精品免费国产一区二区三区四区 | 精品成人佐山爱一区二区 | 日韩精品一区二区三区老鸭窝 | 黄色国产精品 | 一区国产精品 | 中文字幕av高清 | 国产视频二| 亚洲欧美中文日韩在线v日本 | 久久精选视频 | 国产大毛片 | a免费视频| 99re在线视频精品 | 乳色吐息在线观看 | 西西做爰免费视频 | 久久免费看 | 欧美一区免费 | 精品国产一区二区三区久久久蜜臀 | 国产精品视频一区二区三区不卡 | 免费av黄色 | 天天操天天碰 | 欧美亚洲免费 | 色婷婷在线视频观看 | 亚洲精品久久久久久久久 | 拍拍无遮挡人做人爱视频免费观看 | 久久精品欧美一区二区三区不卡 | 欧美精品综合 | 成人1区2区 | 国产成人免费视频网站视频社区 | 国产99一区| 奇米影视7777 | 午夜成人免费影院 | 亚洲视频一区二区三区四区 | 在线看国产 | 国产在线中文字幕 | 日韩一区高清视频 | 在线观看欧美一区二区三区 | 在线观看成人高清 | 日本视频一区二区三区 | 在线免费国产 | 国产在线一区二区 | 亚洲三区视频 | 国产精品精品久久久 | 欧美国产三级 | www.色在线| 亚洲成人精品区 | 欧美精品亚洲精品日韩精品 | 国产精品成人久久久久 | 日本三级不卡 | 高清国产一区二区三区 | 日韩精品视频三区 | 亚洲一区二区 | 免费国产一区二区 | 久国产精品视频 | 亚洲永久免费观看 | 男人天堂视频网 | 国产精品成人一区二区三区夜夜夜 | 欧美第一色| 成人在线免费观看 | 99国产精品久久久久久久 | 激情六月婷 | 欧美日韩国产不卡 | 国产精品久久久久久亚洲影视 | 日韩欧美精品一区 | 国产日韩在线播放 | 国产精品久久久久久久久久免费看 | 色偷偷888欧美精品久久久 | 九九九色 | 国产三级在线播放 | 九九热欧美 | 精品国产不卡一区二区三区 | 欧美日韩高清 | 一区二区三区高清不卡 | 欧美激情一区二区 | av性色 | 91精品国产91久久久久久黑人 | 久草免费在线视频 | 日本午夜在线 | 日韩精品一区二区三区中文在线 | 伊人网站 | 欧美一区二区三区在线视频 | 久久第一区 | 成人在线精品视频 | 好看的一级毛片 | 成人精品视频在线观看 | 中文精品在线 | 精品久久久久久 | 噜噜噜噜狠狠狠7777视频 | 欧美日韩不卡合集视频 | 亚洲 欧美 另类 综合 偷拍 | 国产高清在线精品一区二区三区 | 精品亚洲一区二区三区 | 男女羞羞视频免费观看 | 一区二区三区视频在线观看 | 中文字幕乱码一区二区三区 | 国产精品日本一区二区在线播放 | 成人在线欧美 | 久久精品亚洲一区二区 | 97精品国产97久久久久久免费 | h网站在线观看 | 五月激情综合网 | 国产乱肥老妇国产一区二 | 欧美怡红院视频一区二区三区 | 97国产一区二区精品久久呦 | 久草青青 | 国产在线一区二区三区 | 大香伊蕉在人线视频777 | 日韩一区二区三区在线 | av在线免费看片 | 成人综合社区 | 日韩和的一区二区 | 思热99re视热频这里只精品 | 久久亚洲91 | 欧洲精品视频在线观看 | 久久久久久久中文 | 亚洲 欧美 另类 综合 偷拍 | 亚洲一区二区三区在线免费观看 | 91精品国产综合久久久久久丝袜 | 国产精品无码永久免费888 | 天天干天天操天天爽 | 99国产精品视频免费观看一公开 | 欧美精品一区二区三区手机在线 | 国产福利在线观看视频 | 亚洲精品7777xxxx青睐 | 亚洲一区视频在线播放 | 国产黄色一级大片 | 91久久精品国产亚洲a∨麻豆 | 久久中文在线观看 | 午夜寂寞少妇aaa片毛片 | √新版天堂资源在线资源 | 日韩av一区二区三区在线 | a在线观看 | 91精品在线观看入口 | 亚洲网站免费 | 经典法国性xxxx精品 | 中国妞xxxhd露脸偷拍视频 | 欧美午夜视频 | 色网站在线观看 | 欧美国产日韩一区 | 亚洲乱码国产乱码精品精的特点 | 99成人 | 亚洲人视频 | 夫妻午夜影院 | 日韩在线视频一区 | 国产亚洲一区二区三区在线观看 | 免费看一区二区三区 | 日韩av电影在线免费观看 | 欧美精品99 | 九九热这里只有精品在线观看 | 色小妹一二三区 | 欧美在线一区二区三区 | 亚洲一区二区三区 | 中文字幕在线观看免费 | 伊人久久国产 | 中文字幕精品一区久久久久 | 亚洲 欧美 精品 | 在线免费黄色小视频 | 免费网站国产 | 一级欧美片 | 亚洲精品成人 | 97久久超碰| 亚洲精品二区 | 午夜你懂得| 婷婷久久综合九色综合绿巨人 | 久久精品这里热有精品 | 在线看免费的a | 日韩国产一区 | 精品国产鲁一鲁一区二区在线观看 | 一区二区日本 | 久久久成人网 | 国产精品久久久久婷婷二区次 | 亚洲jizzjizz日本少妇 | 精品一区二区在线观看 | 国产精品久久久久久久久久三级 | 日韩久久久久久 | 拍拍无遮挡人做人爱视频免费观看 | 亚州中文字幕 | 一级成人免费 | 欧美精品导航 | 97操视频| 欧美色图亚洲自拍 | 午夜影院在线看 | 欧美精品1区 | 97热在线| 日韩和的一区二区 | 国产一区二区精品在线观看 | 午夜免费福利在线 | 不卡的毛片 | 欧美一区二区三区视频 | 日韩精品免费在线视频 | 国产高清精 | 一区二区不卡 | 伊人色播| 亚洲国产中文字幕 | 国产精品99久久久久久大便 | 不卡日韩在线 | 在线欧美日韩 | 亚洲成人一区二区三区 | 久久精品综合 | 九九热热九九 | 国产精品久久 | 操人网 | 一区二区免费在线观看 | 一区二区日韩精品 | 久久69精品久久久久久久电影好 | 欧美一区二区精品 | 毛片免费观看视频 | 亚州中文| 成人免费一区二区三区视频网站 | 日韩素人一区二区三区 | 在线播放亚洲 | 国产精品一区二区三区免费视频 | 九色91视频 | 欧美精品日韩 | 玖玖操| 国产中文字幕在线 | 一区二区三区在线免费播放 | 欧美日韩在线一 | 国产精品亚洲成在人线 | 国产精品综合 | 精品99久久 | 久久精品高清 | 亚洲理论电影在线观看 | 91在线资源 | 一级片网| a级在线观看 | 欧洲亚洲视频 | 国产亚洲精品精品国产亚洲综合 | 欧美日韩伊人 | 欧美激情a∨在线视频播放 中文字幕网在线 | 国产艳妇av视国产精选av一区 | 国产一区二区在线免费观看 | 亚洲精品视 | 国产亚洲一区二区精品 | 羞羞视频网站在线看 | 久久人人爽人人爽人人片av高清 | 中文字幕精品一区久久久久 | 欧美精品中文字幕久久二区 | 日韩一二三区 | 中文字幕亚洲字幕一区二区 | 国产一区成人 | 激情久久av一区av二区av三区 | 免费成人av网站 | 国产日韩精品在线观看 | 欧美性久久| 91精品国产aⅴ | 成年人黄色免费视频 | 日韩视频一区在线观看 | 国产日韩在线视频 | 精品国产乱码久久久久久丨区2区 | 国产欧美久久一区二区三区 | 国产精品久久久久久久久久东京 | 毛片真人毛毛片毛片 | 精品少妇一区二区三区日产乱码 | 99re在线观看| 国产精品一区二区无线 | 毛片在线免费 | 视频一区久久 | 日本黄色免费播放 | 亚洲高清视频在线观看 | 成年人av网站| 99爱在线观看 | 欧美日韩视频 | 欧美一二区 | 欧美激情精品久久久久久免费 | 欧美黄色网络 | 亚洲一区二区在线视频 | 日本精品视频在线观看 | 午夜精品久久久久久久久 | 奇米成人影视 | 国产一区在线看 | 国内精品久久久久国产 | 视频一区 中文字幕 | 色免费在线观看 | 一级毛片免费观看 | 性高湖久久久久久久久aaaaa | va在线 | 久久久久精 | 日韩一区二区在线观看 | 成年人网站在线免费观看 | 999久久久久久久久 国产欧美在线观看 | 国产精品高颜值在线观看 | 中文一区 | 亚洲精品一区二区三区蜜桃久 | 国产一区在线视频 | 欧美日韩综合精品 | 欧美日韩国产精品一区 | 欧美激情一区二区 | 成人小视频在线观看 | 欧美激情精品久久久久久免费 | 欧美一区二区 | 麻豆免费短视频 | 国产激情在线 | 2019天天干夜夜操 | 国产女人爽到高潮免费视频 | 免费一级 国产 | 国产黄色大片 | 国产亚洲一区二区在线 | 四虎影视网址 | 欧美一区亚洲二区 | 伊人操操 | 亚洲精品电影在线观看 | 国产精品久久久久久久久免费高清 | 午夜亚洲一区 | 青草青草久热精品视频在线观看 | 亚洲精品日韩精品 | 蜜桃一区 | 91网站在线看 | 91亚洲狠狠婷婷综合久久久 | 毛片搜索| 亚洲国产精品久久久男人的天堂 | 亚洲欧美国产毛片在线 | 高清国产一区二区三区 | 激情久久久 | 一级特黄| 中文字幕亚洲一区二区va在线 | 久久久人成影片一区二区三区 | 麻豆久久久9性大片 | 99久久99热这里只有精品 | 亚洲精品在线视频 | 欧美一区二区三区在线视频观看 | 日本成年人免费网站 | 一区二区三区国产 | 一级黄视频 | 99亚洲国产| av片在线观看 | 在线一区二区免费 | 欧美在线播放一区二区三区 | 亚洲狠狠爱一区二区三区 | 国产精品久久久一区二区 | 九九热精品视频 | 簧片毛片| 日本三级中文在线电影 | 亚洲一区二区三区四区的 | 91视频免费看 | 91精品麻豆日日躁夜夜躁 | 日韩成人影院 | 欧美一区二区三区 | 国产在线一 | 久久久久99精品国产片 | 国产三区四区 | 欧美视频在线免费看 | 国产精品久久久久国产a级 国产精品欧美一区二区三区不卡 | 国产一区精品在线 | 国产一级纯肉体一级毛片 | 日韩视频在线观看一区 | 国产在线播 | 成人欧美一区二区三区视频xxx | youjizz欧美 | 国产精品久久久久久久久免费桃花 | 日韩免费在线 | 亚洲 成人 av | 国产精品美女久久久久久久久久久 | 国产97在线 | 亚洲 | 国产欧美综合一区二区三区 | 亚洲精品久久久久avwww潮水 | 欧美久久久精品 | 一区二区三区四区精品 | 亚洲福利一区二区 | 欧美一区二区久久 | 久久精品久久久久久 | 久久成人久久爱 | 羞羞视频免费网站 | 精品欧美一区二区在线观看视频 | 黄色免费高清视频 | 久久久久综合 | 国产主播久久 | 国产综合视频 | yy6080久久伦理一区二区 | 成人av在线看 | 综合久久一区 | 男女午夜视频 | 小情侣高清国产在线播放 | 欧美黄色一区 | 国产精品自产拍在线观看 | 黄色直接看 | 欧美精品一区二区三区免费视频 | 97高清国语自产拍 | 草草久久久 | 久久小视频 | 黄色网免费看 | 天堂av在线免费观看 | 久久久久国产精品一区二区三区 | 国产探花在线精品一区二区 | 欧美日韩激情在线一区二区三区 | 日韩精品一二区 | 精品一区二区在线观看 | 台湾av在线 | 色视频www在线播放国产人成 | 欧美激情伊人 | 夸克满天星在线观看 | 久久久久久久久久国产 | 91视在线国内在线播放酒店 | 日韩欧美一区二区三区久久婷婷 | 亚洲高清免费视频 | 欧美一级h | 成人a毛片 | 亚洲一二三区在线观看 | 羞羞视频在线免费观看 | 久久久精品高清 | 欧美黄色一区 | 国产精品美女久久久久久不卡 | 欧美高清视频在线观看 | 欧美日韩一区二区不卡 | av片免费看 | 亚洲日韩欧美一区二区在线 | 久久久999成人 | 国产激情精品视频 | 精品美女在线 | 欧美一区二区三区爽大粗免费 | 国产视频二 | 99福利视频| 午夜久久av | 精品亚洲成a人片在线观看 国产高清在线 | 国产成人啪精品午夜在线观看 | 亚洲精品四区 | 亚洲视频在线播放 | 免费国产网站 | 国产精品1区2区3区 欧美 中文字幕 | 日韩免费视频 | 午夜精品久久久久久 | 日日干日日操 | 欧美a网站 | 久久在线播放 | 欧美日韩精品一区二区在线观看 | 久久久久久中文字幕 | 精品日韩一区二区三区 | 国产农村妇女精品 |