精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android中的事件分發和處理

移動開發 Android
上次跟大家分享了一下自定義View的一下要點,這次跟大家聊一下View的事件分發及處理,為什么主題都是View,因為作為一名初級應用層Android工程師,跟我打交道最多的莫過于各種各樣的View,只有詳細了解他們各自的習性,才能更好地跟他們溝通交流,做出自己想要的效果。

上次跟大家分享了一下自定義View的一下要點,這次跟大家聊一下View的事件分發及處理,為什么主題都是View,因為作為一名初級應用層Android工程師,跟我打交道最多的莫過于各種各樣的View,只有詳細了解他們各自的習性,才能更好地跟他們溝通交流,做出自己想要的效果。

基礎儲備 View、MotionEvent

我們都能詳細地說出Android的四大組件:Activity,Service,ContentProvider和BoardcastReceiver,但是四大組件之外,我們用到也很多的是什么,其中肯定包括View,View是用戶跟程序溝通的入口,也是程序展現給用戶信息的窗口。關于View,一些基礎屬性還是要了解的,left,top,right,bottom,分別代表了view的左上角和右下角分別相對x軸,y軸的坐標,而且view的getWidth和getHeight的值都是通過這四個值算得,而且在Android3.0中還增加了x,y,translationX和translationY這幾個屬性,便于我們對view的平移操作,x、y代表了當前view左上角的xy坐標,而translationX和translationY代表了view相對它的父容器的偏移量,默認值是0。

MotionEvent表示用戶的觸摸事件,用戶的一次點擊、觸摸或者滑動都會產生一系列的MotionEvent:

  • MotionEvent.ACTION_DOWN 表示用戶的手指剛接觸到屏幕
  • MotionEvent.ACTION_MOVE 表示用戶的手指正在移動
  • MotionEvent.ACTION_UP 表示用戶的手指從屏幕上抬起

所以一次用戶觸摸屏幕可能會產生這些事件:

  • 點擊屏幕然后松開,Down->Up
  • 點擊屏幕,然后滑動一段距離,松開屏幕 ,Down->Move->…->Move->Up

了解了這些基本知識以后,我們就來學習一下具體怎么分發這些事件

ViewGroup 分發-> 攔截 -> 處理

首先說一點,雖然ViewGroup也是繼承View而來,但是因為在事件攔截上,ViewGroup分析起來更加方便理解,所以先說ViewGroup,下面也會簡單介紹一下View的事件處理。

在事件分發的過程中,主要涉及到三個方法:

  • dispatchTouchEvent(MotionEvent event);
  • onInterceptTouchEvent(MotionEvent event);
  • onTouchEvent();

初看這三個方法就有蒙圈,如果這時候在蒙頭鉆進源碼里,就更是糊涂,我在這里借用任玉剛大大的一段偽代碼解釋一下這三者之間的關系:

  1. public boolean dispatchTouchEvent(MotionEvent event) { 
  2.  
  3.         boolean consume = false
  4.  
  5.         if (onInterceptTouchEvent(event)) { 
  6.  
  7.             consume = onTouchEvent(event); 
  8.  
  9.         } else { 
  10.  
  11.             consume = child.dispatchTouchEvent(event); 
  12.  
  13.         } 
  14.  
  15.   
  16.  
  17.         return consume; 
  18.  
  19.     }  

 

 

 

 

  • 從這段偽代碼中,我們可以看出來,在dispatchTouchEvent中,先調用ViewGroup自身的onInterceptTouchEvent方法,判斷自己是否要攔截,如果這時候自己攔截,那就調用自己的onTouchEvent方法,如果onTouchEvent方法返回了True,那么這次的事件就算消耗了,事件傳遞到此為止,如果返回了False,證明這次沒有消耗這次MotionEvent,那么這次的事件就會往上返回,由上一級繼續處理;如果當前ViewGroup的onInterceptTouchEvent返回了False,那就會調用它的子view的dispatchTouchEvent方法,這樣這個事件就傳遞下去了,如果它的子View處理不了,那么還會回來調用ViewGroup的onTouchEvent方法,當然這一點是沒有在這一段偽代碼里體現的,用一段通俗的例子解釋:

領導收到一份任務(有可能是上級給的),自己看了一眼,然后決定好好休息,今天不工作,就把這個任務交給了手下的小王,小王的默認屬性是只要來任務就接,而且就干,能干不能干一樣接,如果這是一個簡單的任務,那么小王就解決了,這個任務也就完成了,不幸的是,這次任務小王沒有解決掉,然后向領導反饋,領導沒辦法,手下沒人能解決,只好自己干了,就開始解決問題,然后解決掉,任務也完成了。

這就是ViewGroup層的事件分發,當然不是這么簡單,這只不過是通過簡單的方式去理解,其實在真實的事件分發中,有很多問題需要注意:

  • 一個完成的事件序列以Down開始,中間可能包含若干個Move,然后以Up結束
  • 一個view一旦攔截一個某個事件,當前事件所在的完整事件序列將都會由這個view去處理,反應在真實的代碼中,就是一旦view攔截了down事件,那么此后的move和up事件都將不調用onInterceptTouchEvent,而直接由它處理,這就也意味著在onInterceptTouchEvent處理事件是不合適的,因為有可能來了事件,卻直接跳過onInterceptTouchEvent方法。這個也意味著,一旦一個ViewGroup沒有攔截ACTION_DOWN,那么這個事件序列的其他Action,它都將收不到,所以在處理ACTION_DOWN的時候,尤其需要謹慎。
  • onTouchEvent中是要判斷MotionEvent的Action,因為一次點擊操作就會調用兩次onTouchEvent方法,一次是ACTION_DOWN,一次是ACTION_UP,如果手滑一下,還會有若干個ACTION_MOVE
  • ViewGroup默認不攔截任何事件,源碼中ViewGroup的onInterceptTouchEvent方法默認返回的是false

整個事件分發,看起來都是由外向內傳遞的,父View將事件傳遞給子View,理論上來看,子View是沒有辦法影響到父View的事件處理的,但是有一個標示位,requestDisallowInterceptTouchEvent方法,通過這個方法 ,子View能夠影響父view的事件處理,這個可以用于解決父view和子view的滑動沖突,具體想了解的可以搜索它的相關用法,這里將不進行展開。

View 只有默默的承受

View不同于ViewGroup的是,View中沒有onInterceptTouchEvent方法,因為View作為事件處理的***一級,不需要判斷是否要攔截,是一定要攔截,不管能不能處理,都要試一下,所以在View中調用流程是:

dispatchTouchEvent -> onTouchEvent

而且,***onTouchEvent的返回值默認都是True,也就是說事件傳遞下去一般都會被消耗掉的,只是看中途是否有人攔截,這個時候讀者可能會有疑問:TextView的onTouchEvent的返回值也是True嗎?答案就是:是的,那為什么點在TextView上面還是能觸發它的父視圖的onTouchEvent,理論上不應該是,TextView消耗掉這次的事件,不回傳。理論上確實是這樣,但是因為TextView的clickable和longClickable屬性都是false,當這兩個屬性都為false的時候,是不會消耗事件的,所以TextView不會消耗事件,這也就可以解釋為什么把一個TextView放在一個Button上面,然后點擊TextView還是能觸發Button的點擊事件

在這里可能需要提醒一下大家,算是一個我之前踩到的一個坑,我把一個view的enable狀態設成了false,然后又給它增加了onClickListener,這時候我本以為,它的點擊事件不會被觸發,結果它還是可以被點擊,后來才了解到,view的enable狀態和onTouchEvent是沒有關系的,只有clickable狀態是對onTouchEvent有影響的,還有一點 ,設置 view的enable為false確實也會把view的clickable設成false,但是設置view的onclickListener就又把view的clickable變成了true,所以***的解決方案就是把那兩行代碼換下先后順序,問題就迎刃而解了。

詳解處理GesutureDetector

費勁千辛萬苦,終于把事件攔截下來了,然后我們需要總得做點什么吧,不然都對不起自己浪費這么多口舌,說到對事件的處理,我們首先想到的就是setOnClickListener,殊不知onClickListener的優先級是***的,下一節里面會對優先級進行說明,而這里,我們將主要想著如果處理事件,當我們興奮地拿到一連串的事件,但又不知如何下手,甚至于連最簡單的點擊事件都要自己進行一番處理,更別提做成平移、旋轉、縮放這樣的操作,但是官方提供的GestureDetector給我們提供了可能。

官方提供的GestureDetector是一個手勢輔助檢測類,默認能夠檢測多種手勢:

  1. class SimpleGestureListener implements GestureDetector.OnGestureListener { 
  2.  
  3.     @Override 
  4.  
  5.     public boolean onDown(MotionEvent e) { 
  6.  
  7.         return false
  8.  
  9.     } 
  10.  
  11.   
  12.  
  13.     @Override 
  14.  
  15.     public void onShowPress(MotionEvent e) { 
  16.  
  17.   
  18.  
  19.     } 
  20.  
  21.   
  22.  
  23.     @Override 
  24.  
  25.     public boolean onSingleTapUp(MotionEvent e) { 
  26.  
  27.         return false
  28.  
  29.     } 
  30.  
  31.   
  32.  
  33.     @Override 
  34.  
  35.     public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
  36.  
  37.         return false
  38.  
  39.     } 
  40.  
  41.   
  42.  
  43.     @Override 
  44.  
  45.     public void onLongPress(MotionEvent e) { 
  46.  
  47.   
  48.  
  49.     } 
  50.  
  51.   
  52.  
  53.     @Override 
  54.  
  55.     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
  56.  
  57.         return false
  58.  
  59.     } 
  60.  
  61.  

通過這個類,我們可以很方便的處理除了單擊和長按之外,還有滑動,雙擊等各種手勢,并對其分別進行處理,如果這些還是不能滿足你的好奇心,那還有一個官方提供的ScaleGestureDetector,從名字就可以判斷出來這是一個檢測縮放手勢的輔助類,而且還有大牛仿照ScaleGestureDetector思路做出了平移以及旋轉的輔助類,然后我們就可以根據這些輔助類,幾乎為所欲為了,下面我寫了一個支持平移,縮放,旋轉的小Demo。

  1. private void init() { 
  2.  
  3.   
  4.  
  5.         scaleGesture = new ScaleGestureDetector(getContext(), new ScaleListener()); 
  6.  
  7.         moveGesture = new MoveGestureDetector(getContext(), new MovingListener()); 
  8.  
  9.         rotateGesture = new RotateGestureDetector(getContext(), new RotateListener()); 
  10.  
  11.   
  12.  
  13.     } 
  14.  
  15.   
  16.  
  17.     @Override 
  18.  
  19.     public boolean onTouchEvent(MotionEvent event) { 
  20.  
  21.   
  22.  
  23.         scaleGesture.onTouchEvent(event); 
  24.  
  25.         moveGesture.onTouchEvent(event); 
  26.  
  27.         rotateGesture.onTouchEvent(event); 
  28.  
  29.   
  30.  
  31.         return true
  32.  
  33.     } 
  34.  
  35.   
  36.  
  37.   
  38.  
  39.     private class ScaleListener implements ScaleGestureDetector.OnScaleGestureListener { 
  40.  
  41.   
  42.  
  43.         @Override 
  44.  
  45.         public boolean onScale(ScaleGestureDetector detector) { 
  46.  
  47.   
  48.  
  49.             setScaleX(detector.getScaleFactor() * getScaleX()); 
  50.  
  51.             setScaleY(detector.getScaleFactor() * getScaleY()); 
  52.  
  53.   
  54.  
  55.             return true
  56.  
  57.         } 
  58.  
  59.   
  60.  
  61.         @Override 
  62.  
  63.         public boolean onScaleBegin(ScaleGestureDetector detector) { 
  64.  
  65.             return true
  66.  
  67.         } 
  68.  
  69.   
  70.  
  71.         @Override 
  72.  
  73.         public void onScaleEnd(ScaleGestureDetector detector) { 
  74.  
  75.   
  76.  
  77.         } 
  78.  
  79.     }  

 

 

 

 

只貼了部分的代碼,而且貌似旋轉好像還有點問題,以后時間再修正,有用到的讀者可以在詳細了解下,完整代碼,我會在文章的***給出鏈接,同時感謝Android multitouch gesture detectors的作者,提供了這么方便的手勢操作類

onTouchListener OnTouchEvent OnClickListener

我們在知道onTouchEvent之前肯定都知道onClickListener和onTouchListener,而他們都是事件的消費者,onTouchListener是在onTouch方法中生效,而且onTouch要先于onTouchEvent,就是說一旦設置了onTouchListener并且***onTouch方法返回了True,那onTouchEvent將不會再被執行,而onClickListener和onTouchEvent有些關系,onTouchEvent的默認實現里會調用onClickListener的onClick方法,如果重寫了onTouchEvent,因為onClickListener接受不到ACTION_DOWN和ACTION_UP,那么再設置onClickListener也就不會再生效了,這個時候的單擊或者長按處理只能在onTouchEvent中自己處理。 

責任編輯:龐桂玉 來源: 安卓開發精選
相關推薦

2023-10-08 08:23:44

Android事件邏輯

2024-07-01 08:27:05

KeyAndroid按鍵事件

2010-08-06 10:03:42

Flex事件

2017-02-21 12:20:20

Android事件分發機制實例解析

2016-12-08 10:19:18

Android事件分發機制

2021-08-17 13:41:11

AndroidView事件

2010-08-06 10:24:56

Flex事件分發

2012-12-28 14:53:34

Android開發初始化窗體事件

2010-08-09 09:47:34

Flex事件機制

2009-08-04 09:56:46

C#事件處理自定義事件

2023-03-14 07:31:17

EoscGo語言

2023-04-03 08:39:33

中間件go語言

2017-07-20 16:55:56

Android事件響應View源碼分析

2021-08-20 09:48:07

鴻蒙HarmonyOS應用

2011-06-16 14:23:43

JavaScript空事件處理程序

2021-02-06 10:27:45

C#函數參數

2021-08-11 14:29:20

鴻蒙HarmonyOS應用

2024-06-28 10:19:02

委托事件C#

2020-09-25 11:10:51

運維故障排查監控

2021-10-28 17:05:11

IT運維故障
點贊
收藏

51CTO技術棧公眾號

久久网福利资源网站| 在线亚洲一区观看| 精品中文字幕一区| 无码人妻丰满熟妇区bbbbxxxx| 欧美人妖在线| 欧美福利视频一区| 霍思燕三级露全乳照| 成全电影播放在线观看国语| 国产中文一区二区三区| 亚州av一区二区| 懂色av粉嫩av浪潮av| 超碰成人在线观看| 在线一区二区视频| 久久人人爽人人爽人人av| 粉嫩一区二区三区国产精品| 粉嫩欧美一区二区三区高清影视 | 欧美日韩激情一区| 8x8ⅹ国产精品一区二区二区| 天天在线女人的天堂视频| 免费人成精品欧美精品| 久久久视频在线| 中文字幕无码日韩专区免费| 色哟哟精品丝袜一区二区| 91精品欧美久久久久久动漫 | 国产最新精品免费| 欧美在线视频播放| 青青草手机视频在线观看| 亚洲涩涩av| 精品欧美黑人一区二区三区| 亚洲36d大奶网| 国产直播在线| 亚洲欧美日韩一区二区 | 成人精品一区| 99国产精品国产精品毛片| 91久久嫩草影院一区二区| 香蕉影院在线观看| 日韩香蕉视频| 欧美日韩成人黄色| 国产在线免费看| 欧美偷拍自拍| 亚洲欧洲国产一区| 亚洲最大的黄色网| 亚洲国产欧美国产第一区| 欧美日韩在线三级| 四季av一区二区| 欧美性xxx| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 看欧美ab黄色大片视频免费| 黄毛片在线观看| 精品久久久久久久久国产字幕| 奇米777四色影视在线看| 久cao在线| 亚洲欧美怡红院| 手机在线视频你懂的| 国产在线观看免费麻豆| 最新日韩av在线| av磁力番号网| 色操视频在线| 亚洲成av人片在线观看| 青青青青草视频| 91福利区在线观看| 欧美性高跟鞋xxxxhd| av网站在线观看不卡| 欧美三级网址| 欧美日韩免费观看一区三区| 午夜视频在线网站| 精品一区二区三区亚洲| 日韩精品一区二区三区四区视频| 亚洲色图欧美另类| 欧美美女啪啪| 尤物九九久久国产精品的分类| 阿v天堂2014| 国产精品久久天天影视| 欧美另类精品xxxx孕妇| 国产一级视频在线播放| 国产麻豆综合| 国产精品久久久久久久久久久久久久| 在线观看视频中文字幕| 国产麻豆9l精品三级站| 国产呦系列欧美呦日韩呦| 欧洲亚洲精品视频| 国产精品久久久久久久久果冻传媒 | 国产成人精品免费视频| 在线免费观看视频网站| 国产高清在线观看免费不卡| 久久精品中文字幕一区二区三区| 国产小视频在线| 亚洲人精品一区| 精品无码一区二区三区在线| 91九色综合| 日韩欧美aaaaaa| 性高潮久久久久久久 | 欧美精品久久久久久久免费| 亚洲精品在线影院| 日韩视频在线你懂得| av中文字幕免费观看| 亚洲欧美偷拍自拍| 97精品国产91久久久久久| 中文字幕日韩第一页| 国产成人在线观看免费网站| 欧美日韩一区二 | 一区二区三区四区在线免费观看| 欧洲黄色一级视频| 国产亚洲久久| 亚洲视频在线看| 久久综合综合久久| 蜜臀国产一区二区三区在线播放| 国产精品区一区| 日本在线观看免费| 一本色道久久综合亚洲91| 乳色吐息在线观看| 波多野结衣在线观看一区二区 | 国产无遮挡免费视频| 蜜臀av国产精品久久久久 | 少妇人妻偷人精品一区二区| 国产精品美女一区二区三区| 春日野结衣av| 伊人精品久久| 成人444kkkk在线观看| 日本免费在线观看视频| 不卡av免费在线观看| 中文字幕一区二区三区有限公司| 性爽视频在线| 精品国产网站在线观看| 中文乱码字幕高清一区二区| 蜜桃久久av| 国产精品成人一区二区三区| a毛片在线看免费观看| 91国模大尺度私拍在线视频| 日本黄色免费观看| 激情综合电影网| 3d精品h动漫啪啪一区二区| 99视频在线观看地址| 色狠狠综合天天综合综合| 中文字幕日韩三级片| 国内视频精品| 成人自拍偷拍| 日本资源在线| 日韩免费看网站| 2021亚洲天堂| 国产乱码精品1区2区3区| 一区二区三区四区国产| 欧美极品在线| 日韩在线一区二区三区免费视频| 人人妻人人爽人人澡人人精品| 91在线一区二区| 国产免费毛卡片| 神马午夜久久| 国产v综合ⅴ日韩v欧美大片| 免费黄网站在线观看| 色综合久久99| 岛国片在线免费观看| 卡一卡二国产精品 | 欧美日韩的一区二区| 亚洲色图27p| 激情成人综合网| 第九区2中文字幕| 亚洲国产aⅴ精品一区二区| 欧美黄色成人网| 人妻妺妺窝人体色www聚色窝| 亚洲一卡二卡三卡四卡五卡| 亚洲av永久无码精品| 美女爽到呻吟久久久久| 日韩成人av电影在线| 欧洲亚洲精品| 欧美国产乱视频| 天堂中文在线官网| 色菇凉天天综合网| 天美传媒免费在线观看| 国产精品资源在线观看| 国产一区 在线播放| 国产日韩三级| 国产成人精品久久| 黄色国产网站在线播放| 欧美不卡一区二区三区| aaa人片在线| 国产欧美日韩精品在线| 国产三级精品三级在线| 欧美日本一区二区视频在线观看 | 97精品人人妻人人| 久久国产精品亚洲77777| 亚洲一区二区三区涩| 伊色综合久久之综合久久| 2019av中文字幕| 2021av在线| 精品国产一二三区| 日韩欧美在线观看免费| 亚洲图片你懂的| 日韩av一二区| 国产在线精品一区二区三区不卡 | 日本在线免费观看一区| 国产一区二区三区精品在线观看| 久久免费国产精品1| yw193.com尤物在线| 日韩欧美综合一区| 精品成人无码久久久久久| 亚洲精品免费播放| 少妇无套高潮一二三区| 国产成人在线视频网站| 99久久国产宗和精品1上映| 女生裸体视频一区二区三区| 欧美亚洲精品日韩| 日韩精品成人在线观看| 国产精品久久久久影院日本 | 国产精品videosex性欧美| 国产尤物99| 国产免费区一区二区三视频免费| 日韩av123| 久久香蕉av| 久久精品99久久香蕉国产色戒| 日色在线视频| 欧美大片顶级少妇| 91精品国产乱码久久久久| 欧美特级www| 国产精品成人免费一区二区视频| 国产精品每日更新| 少妇按摩一区二区三区| 国产成人免费视频网站高清观看视频| 看欧美ab黄色大片视频免费| 羞羞答答国产精品www一本| 欧美一区二区三区综合| 999视频精品| 天堂va久久久噜噜噜久久va| 亚洲瘦老头同性70tv| 动漫一区二区在线| 伊人久久大香| 成人免费大片黄在线播放| 国产精品字幕| 日韩免费中文字幕| 欧美少妇精品| 欧美在线欧美在线| 中国字幕a在线看韩国电影| 欧美精品www| 麻豆av在线免费观看| 欧美成人h版在线观看| 黄色国产网站在线播放| 久久精品国产亚洲| 美女av在线播放| 色yeye香蕉凹凸一区二区av| 国产69精品久久app免费版| 亚洲欧美成人一区二区在线电影| 青青草免费观看免费视频在线| 亚洲国产成人精品久久久国产成人一区| 国产成人精品毛片| 日韩午夜激情av| www.国产精品视频| 欧美www视频| 欧日韩在线视频| 亚洲第一综合天堂另类专| 国模无码一区二区三区| 亚洲国产精品va在线观看黑人| 国产91麻豆视频| 亚洲精品www| 日韩一二三四| 这里精品视频免费| 婷婷激情在线| 色综合久久中文字幕综合网小说| 在线网址91| 97在线视频一区| 亚洲1234区| 91精品久久久久久| 欧洲一区在线| 国产亚洲欧美一区二区| 嫩草影视亚洲| 亚洲最大色综合成人av| 欧美激情1区2区3区| 日韩av高清在线看片| 免费亚洲视频| 日本中文字幕二区| 成人午夜av电影| 中文字幕在线观看网址| 欧美—级在线免费片| 肉色超薄丝袜脚交69xx图片 | 久艹在线免费观看| 香蕉久久国产| 亚洲 国产 图片| 不卡高清视频专区| 欧美成人久久久免费播放| 亚洲综合激情另类小说区| 欧美三级午夜理伦| 欧美剧在线免费观看网站| 性一交一乱一精一晶| 亚洲欧美激情四射在线日| 色哟哟免费在线观看| 久久久女人电视剧免费播放下载| 欧美不卡高清一区二区三区| 91国产在线免费观看| 天堂av一区二区三区在线播放| 一区二区不卡在线观看| 伊人影院久久| 亚洲欧美自拍另类日韩| zzijzzij亚洲日本少妇熟睡| 亚洲欧美va天堂人熟伦| 亚洲综合另类小说| 欧美另类高清videos的特点| 欧美精品一区二区三区在线| av午夜在线| 69av在线播放| 久久一级大片| 亚洲精品欧洲精品| 日韩视频在线一区二区三区| 国产乱码一区二区三区四区| 91视视频在线观看入口直接观看www | 国产综合在线视频| 激情欧美一区二区三区黑长吊| 国产在线播放一区二区| 国产精品久久久久9999赢消| 狠狠久久亚洲欧美| 亚洲热在线视频| 国产午夜精品美女毛片视频| 国产一级片免费看| 欧美军同video69gay| 久青草国产在线| 久久久久久久久国产| 成人影院网站ww555久久精品| 欧美日韩国产精品一区二区| 激情久久中文字幕| 久久6免费视频| 中文字幕av不卡| 4438国产精品一区二区| 欧美tickling网站挠脚心| 免费在线看a| 国产精品91在线观看| 日韩黄色网络| 一卡二卡三卡视频| 国产精品一区久久久久| 色婷婷粉嫩av| 欧美日韩成人在线| 成a人片在线观看www视频| 5278欧美一区二区三区| eeuss鲁片一区二区三区| 亚洲一区 在线播放| 韩国理伦片一区二区三区在线播放| 粉嫩av蜜桃av蜜臀av| 色综合亚洲欧洲| 日韩欧美电影在线观看| 97久久超碰福利国产精品…| 亚洲伦理影院| 日韩av一区二区三区在线观看| 久久激情婷婷| a级在线免费观看| 欧美性xxxxxxxxx| 日韩三级电影网| 国产成人精品电影| 欧美理论电影大全| the porn av| 亚洲欧美综合网| 精品区在线观看| 久久久久中文字幕| 国产精品毛片久久久| jizzjizz国产精品喷水| a亚洲天堂av| 欧美黑人一区二区| 亚洲三级黄色在线观看| 91精品国产高清一区二区三密臀| 国产色综合视频| 精品国模在线视频| 欧美日韩va| 中文字幕一区二区中文字幕| 国产综合色在线视频区| 国产在线一卡二卡| 精品久久久久久亚洲综合网| 成人超碰在线| 欧美日韩一区综合| 蜜臀99久久精品久久久久久软件| 国产精品视频看看| 日韩精品在线网站| av资源在线| 日韩欧美国产二区| 韩国欧美国产1区| 精品视频久久久久| 亚洲欧美国产日韩天堂区| 黄色成人在线观看网站| 青青草视频国产| 久久综合成人精品亚洲另类欧美| 波多野结衣一本一道| 久久色在线播放| 女一区二区三区| 污污网站在线观看视频| 亚洲一区二区三区激情| 九色国产在线观看| 亚洲a级在线观看| 久久福利毛片| 小向美奈子av| 国产视频精品xxxx| 在线视频成人| 免费在线观看亚洲视频| 中文字幕一区二区三区四区| 男人天堂一区二区| 国产精品人人做人人爽| 狠狠爱综合网| 摸摸摸bbb毛毛毛片| 日韩精品在线一区二区| 丁香婷婷久久| 少妇高潮毛片色欲ava片| 国产精品久久免费看| 天天爽夜夜爽夜夜爽| 成人中文字幕在线观看| 久久青草久久| 日韩av在线天堂|