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

鴻蒙開源第三方組件—頁面滑動組件 ViewPagerIndicator_ohos

開源
ViewPagerIndicator_ohos是一個信息展示組件,適用于展示新聞類、購物類等復(fù)雜信息。使用傳統(tǒng)的頁面展示內(nèi)容時,同種類的信息在同一個頁面上展示。

[[420479]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

前言

基于安卓平臺的頁面滑動組件ViewPagerIndicator(https://github.com/LuckyJayce/ViewPagerIndicator),實現(xiàn)了鴻蒙化遷移和重構(gòu)。

背景

ViewPagerIndicator_ohos是一個信息展示組件,適用于展示新聞類、購物類等復(fù)雜信息。使用傳統(tǒng)的頁面展示內(nèi)容時,同種類的信息在同一個頁面上展示。使用ViewPagerIndicator_ohos組件展示內(nèi)容時,一個種類的信息可以在多個頁面展示,用戶通過滑動屏幕的方式來實現(xiàn)頁面切換,二者的效果對比如圖1所示。

鴻蒙開源第三方組件——頁面滑動組件 ViewPagerIndicator_ohos-鴻蒙HarmonyOS技術(shù)社區(qū)

圖1 ViewPagerIndicator_ohos組件與傳統(tǒng)的頁面在展示內(nèi)容時的區(qū)別

組件效果展示

組件應(yīng)用的主界面中有3個按鈕,其中,“主頁”和“我的”按鈕展示的是組件的局部效果,“社區(qū)”按鈕展示的是組件的整體效果。此處,我們不再贅述局部效果,直接講解組件的整體效果,有對其余兩個按鈕的功能感興趣的朋友可以下載源碼了解。

當(dāng)用戶點擊應(yīng)用底部導(dǎo)航欄區(qū)“社區(qū)”標(biāo)簽時,組件向用戶展示“社區(qū)”板塊的內(nèi)容,內(nèi)容分布在多個頁面內(nèi)。在應(yīng)用的頂部有頁面指示器,用戶可以通過兩種方式實現(xiàn)頁面的切換效果:1)滑動屏幕時,頁面隨滑動切換,頁面指示器始終指示當(dāng)前正在展示的頁面。2)點擊頁面指示器,頁面會切換到被選中的指示器所指示的頁面,效果如圖2所示。

鴻蒙開源第三方組件——頁面滑動組件 ViewPagerIndicator_ohos-鴻蒙HarmonyOS技術(shù)社區(qū)

圖2 滑動頁面同時指示器顯示當(dāng)前頁面功能

Sample解析

Sample部分主要用于構(gòu)建顯示布局,MainAbilitySlice文件負(fù)責(zé)構(gòu)建應(yīng)用主界面布局,CommunityFraction文件負(fù)責(zé)構(gòu)建頁面和頁面指示器布局,CommunityFraction形成的UI以Fraction的形式嵌入到主界面布局中。

1、MainAbilitySlice文件

MainAbilitySlice文件負(fù)責(zé)構(gòu)建組件應(yīng)用的主界面布局,下面給出布局構(gòu)建的具體步驟:

第1步:設(shè)置組件應(yīng)用的布局文件

組件的主界面布局定義在ability_main.xml中,界面包含三個Button和一個StackLayout,前者表示“主頁”、“我的”和“社區(qū)”按鈕,后者表示內(nèi)容顯示頁面。通過setUIContent()方法將ability_main.xml文件設(shè)置為組件應(yīng)用的主界面布局。

  1. super.setUIContent(ResourceTable.Layout_ability_main); 

 第2步:按鈕的定位

在MainAbilitySlice文件的OnStart()方法中,通過findComponentById()的方法實現(xiàn)第1步中“社區(qū)”按鈕的定位。

  1.  //“主頁”、“我的”和“社區(qū)”按鈕 
  2. private Button basebtn,mybtn,communitybtn; 
  3. ...... 
  4. //定位“社區(qū)”按鈕       
  5. communitybtn= (Button) findComponentById(ResourceTable.Id_main_community_btn); 

 第3步:按鈕監(jiān)聽

給“社區(qū)”按鈕設(shè)置點擊事件,點擊按鈕時,將表示社區(qū)內(nèi)容的CommunityFraction嵌入到第1步的StackLayout中,實現(xiàn)點擊“社區(qū)”按鈕后的顯示效果。

  1. //設(shè)置按鈕監(jiān)聽 
  2.   communitybtn.setClickedListener(this); 
  3.   ...... 
  4.  @Override 
  5.    public void onClick(Component component) { //點擊事件 
  6.        switch (component.getId()){ 
  7.            ...... 
  8.            case ResourceTable.Id_main_community_btn: 
  9.               displayCommunityFraction(); //將CommunityFraction嵌入主界面布局 
  10.                break; 
  11.            default
  12.                break; 
  13.        } 
  14.    } 

 2、CommunityFraction文件

CommunityFraction類繼承自Fraction類,作為整體顯示布局的一部分嵌入MainAbility中,不能單獨使用。CommunityFraction文件負(fù)責(zé)構(gòu)建頁面和頁面指示器布局,此處使用ViewPager對象管理頁面切換,使用TabList創(chuàng)建頁面指示器,將ViewPager里的頁面與TabList里的Tab按順序綁定,以實現(xiàn)組件效果展示中描述的效果,下面給出具體的實現(xiàn)步驟。

第1步:創(chuàng)建CommunityFraction文件的布局

fraction_community.xml是CommunityFraction文件的布局文件,布局中包含一個ViewPager和一個TabList。通過LayoutScatter類對象的parse()方法將fraction_community.xml形成一個Component 對象,方便后續(xù)的步驟使用。

  1. Component component = scatter.parse(ResourceTable.Layout_fraction_community, container, false

第2步:導(dǎo)入相關(guān)類并聲明對象

在CommunityFraction文件中導(dǎo)入ViewPager、PagerAdapter類,其中ViewPager類繼承自PageSlider類,通過響應(yīng)屏幕滑動完成頁面之間的切換;PagerAdapter類繼承自PageSliderProvider類,提供了頁面項管理功能。

導(dǎo)入ohos.agp.components下的所有類,其中包含用于創(chuàng)建頁面指示器的TabList類,和用于設(shè)置TabList的監(jiān)聽和樣式FixedIndicatorView類。

  1. import com.shizhefei.view.indicator.CommunityTabListener; 
  2. import com.shizhefei.view.indicator.FixedIndicatorView; 
  3. import com.shizhefei.view.viewpager.PagerAdapter; 
  4. import com.shizhefei.view.viewpager.ViewPager; 
  5. public class CommunityFraction extends Fraction { 
  6.     ...... 
  7.     private ViewPager viewPager; 
  8.     private PagerAdapter adapter; 
  9.     private Component component ; 
  10.     private TabList tabList; 
  11.     ..... 

第3步:創(chuàng)建不同的頁面

因為CommunityFraction類繼承自Fraction類,因此需要重寫onComponentAttached()方法,當(dāng)CommunityFraction被添加到主界面布局時,此方法被調(diào)用。在onComponentAttached()方法中,用xml的方式創(chuàng)建三個不同的顯示頁面,分別為“頁面1”、“頁面2”、“頁面3”。

  1. @Override 
  2. protected Component onComponentAttached(LayoutScatter scatter, ComponentContainer container, Intent intent) { 
  3.          ...... 
  4.          DirectionalLayout directionalLayout1 = (DirectionalLayout) scatter.parse(ResourceTable.Layout_page1, nullfalse); //頁面1 
  5.          DirectionalLayout directionalLayout2 = (DirectionalLayout) scatter.parse(ResourceTable.Layout_page2, nullfalse);  //頁面2 
  6.          DirectionalLayout directionalLayout3 = (DirectionalLayout) scatter.parse(ResourceTable.Layout_page3, nullfalse);  //頁面3 
  7.          ...... 

同時創(chuàng)建一個元素類型為Component的ArrayList(數(shù)組列表),將上述創(chuàng)建的三個頁面依次添加到ArrayList中。

  1. //創(chuàng)建ArrayList 
  2.      pages = new ArrayList<Component>(); 
  3.      //將頁面裝入ArrayList 
  4.      pages = new ArrayList<Component>(); 
  5.      pages.add(directionalLayout1); 
  6.      pages.add(directionalLayout2); 
  7.      pages.add(directionalLayout3); 

第4步:創(chuàng)建頁面指示器

首先定義一個String類型的數(shù)組,數(shù)組的長度決定頁面指示器的個數(shù),數(shù)組的元素決定頁面指示器上的內(nèi)容。

然后創(chuàng)建一個TabList 類對象,通過findComponentById()方法定位到fraction_community.xml中的TabList。

最后使用for循環(huán),將數(shù)組里的內(nèi)容逐個設(shè)置為TabList 里各Tab的文本。

  1. private String[] str={"主頁1","主頁2","主頁3"}; 
  2. ...... 
  3.         this.tabList = tabList; 
  4.         if(this.tabList!=null){  
  5.             for(int i=0;i<str.length;i++){ //頁面數(shù)量小于之前設(shè)定的tab標(biāo)簽數(shù)量 
  6.                 TabList.Tab tab = this.tabList.new Tab(getContext()); 
  7.                 tab.setText(str[i]); 
  8.                 tabList.addTab(tab); 
  9.             } 
  10.         } 
  11.         //tabList初始化默認(rèn)選擇第一個tab 
  12.         this.tabList.selectTabAt(0); 

第5步:ViewPager載入頁面

首先實例化ViewPager類對象,定位到fraction_community.xml里的ViewPager;并實例化PagerAdapter類對象,形成頁面管理適配器。然后通過setPages()方法將第3步中包含三個頁面的ArrayList傳入適配器中。最后將適配器和上述ViewPager對象綁定,即可實現(xiàn)滑動屏幕后多個頁面來回切換的效果。

  1. viewPager = (ViewPager)mcomponent.findComponentById(ResourceTable.Id_pageslider_community); //定位ViewPager 
  2.       adapter = new PagerAdapter(); //實例化PagerAdapter類對象 
  3.       adapter.setPages(pages); //傳入包含三個頁面的ArrayList 
  4.       viewPager.setProvider(adapter); 

第6步:實現(xiàn)TabList跟隨頁面切換而變化

為ViewPager添加頁面滑動監(jiān)聽事件,當(dāng)頁面切換時,執(zhí)行相應(yīng)操作來實現(xiàn)TabList跟隨頁面切換而變化的效果。onPageChosen()方法用于設(shè)置當(dāng)頁面處于被選中狀態(tài)時執(zhí)行的操作,在重寫方法該方法時,需傳入當(dāng)前被選中的(正在顯示的)頁面的編號i,并將tabList中相應(yīng)編號的Tab設(shè)置為選中狀態(tài)。

  1. viewPager.addPageChangedListener(new PageSlider.PageChangedListener() { 
  2.             // 頁面滑動轉(zhuǎn)換過程中調(diào)用 
  3.             ....... 
  4.             @Override 
  5.             public void onPageChosen(int i) {   // i表示頁面編號 
  6.                         tabList.selectTabAt(i);  // tabIndicator隨頁面滑動切換而改變 
  7.             } 
  8. }); 

第7步:綁定TabList并使其按固定大小平均排列

通過CommunityTabListener類的setViewPager()方法能夠?qū)iewPager和TabList綁定;FixedIndicatorView類的setFixedIndicator()方法能夠固定TabList中各Tab的尺寸,實現(xiàn)等距離平均排列的效果。

  1. FixedIndicatorView fixedIndicatorView = new FixedIndicatorView(str,this.tabList); 
  2.        //CommunityTabListener實現(xiàn)了TabList.TabSelectedListener 
  3.        CommunityTabListener tabListener=new CommunityTabListener(); 
  4.        tabListener.setViewPager(viewPager); 
  5.        //設(shè)置TabList 監(jiān)聽 
  6.        fixedIndicatorView.setTabListListener(tabListener); 
  7.        //設(shè)置TabList UI風(fēng)格 
  8.        fixedIndicatorView.setIndicatorStyle(TabList.INDICATOR_BOTTOM_LINE); 
  9.        //設(shè)置TabList的各Tab的長度固定且相等 
  10.        fixedIndicatorView.setFixedIndicator(true); 

Library解析

ViewPagerIndicator_ohos組件的關(guān)鍵功能包括ViewPager頁面切換和TabList頁面指示器切換。Library按照上述兩個功能劃分為兩個文件:indicator文件、viewpager文件,如圖3所示。

indicator文件夾包括CommunityTabListener、FixedIndicatorView、和TabListener(在“我的”板塊被引用,因此不作詳細(xì)講解);viewpager文件夾包括PagerAdapter和ViewPager。接下來將針對上述文件進(jìn)行具體講解。

鴻蒙開源第三方組件——頁面滑動組件 ViewPagerIndicator_ohos-鴻蒙HarmonyOS技術(shù)社區(qū)

圖 3 Library部分的工程結(jié)構(gòu)

1、頁面指示器功能實現(xiàn)

(1) CommunityTabListener功能實現(xiàn)

頁面指示器中的各Tab標(biāo)簽中設(shè)有監(jiān)聽,點擊不同的Tab可以切換至不同的頁面,具體效果可參考圖2。

上述功能具體由CommunityTabListener類來完成,該類實現(xiàn)了TabList類的TabSelectedListener接口。在此接口中,主要重寫三個函數(shù):onSelected()、onUnSelected()、和onReselected(),分別負(fù)責(zé)設(shè)置當(dāng)頁面上tab被選中、未被選中、以及被釋放時的行為。此處設(shè)置:當(dāng)Tab被選中時,頁面切換到Tab指示的頁面。

  1. public class CommunityTabListener implements TabList.TabSelectedListener { 
  2. private ViewPager mviewPager; 
  3.     @Override 
  4.     //頁面指示器的某個Tab被選中時調(diào)用該方法 
  5.     public void onSelected(TabList.Tab tab) { 
  6.         int i = tab.getPosition();//獲取當(dāng)前Tab的位置 
  7.         if(i>=0){//當(dāng)前tab位置大于0 
  8.             mviewPager.setCurrentPage(i);// 頁面切換到Tab指示的頁面 
  9.         } 
  10.    } 
  11.  
  12.    @Override 
  13.    //頁面沒有被選中時 
  14.     public void onUnselected(TabList.Tab tab) { 
  15.     } 
  16.  
  17.    @Override 
  18.    //頁面重新被選中時 
  19.     public void onReselected(TabList.Tab tab) { 
  20.  
  21.     //ViewPager 傳入 
  22.     public void setViewPager(ViewPager viewPager) { 
  23.        this.mviewPager = viewPager;  
  24.     } 

(2) FixdIndicatorView功能實現(xiàn)

FixedIndicatorView類用于設(shè)置TabList監(jiān)聽事件和UI樣式。其中,setTabListListener()方法用來設(shè)置指示器的監(jiān)聽;setFixedIndicator()方法用來固定TabList中各Tab的尺寸和位置,實現(xiàn)個Tab大小相等且平均排列分布的效果。

  1. //設(shè)置頁面指示器的監(jiān)聽 
  2. public void setTabListListener(TabList.TabSelectedListener tabSelectedListener){ 
  3.         tabList.addTabSelectedListener(tabSelectedListener); 
  4.  
  5. //設(shè)置頁面指示器的UI風(fēng)格 
  6.     public void setIndicatorStyle(int style){ 
  7.         this.tabList.setIndicatorType(style); 
  8.  
  9. //設(shè)置頁面指示器的Tab尺寸固定且相等 
  10.     public void setFixedIndicator(boolean b){ 
  11.         tabList.setFixedMode(b); 
  12.  } 

2、頁面管理功能實現(xiàn)

(1)PagerAdapter 功能實現(xiàn)

頁面管理適配器由PagerAdapter類來完成,其主要用于和上述ViewPager類對象綁定,可實現(xiàn)滑動屏幕時多個頁面切換,提供了頁面項管理功能。

setPages()方法將已經(jīng)創(chuàng)建好的頁面?zhèn)魅脒m配器。

createPageInContainer()方法用于在特定的位置添加Page。在剛載入ViewPager的時候,默認(rèn)顯示第一個頁面,頁面加載需要調(diào)用createPageInContainer()方法。第一個頁面顯示后,用戶可能會立刻滑動屏幕,切換到相鄰的頁面,為了頁面的順滑切換,在第一個頁面顯示的同時,相鄰頁面也需要調(diào)用createPageInContainer()方法加載出來,因此在載入ViewPager的時候,createPageInContainer()方法被調(diào)用了兩遍。

destroyPageFromContainer()方法用于銷毀某個特定的界面。ViewPager會同時緩存3個頁面,當(dāng)我們創(chuàng)建的顯示頁面多于3個時,需要在ViewPager中銷毀多余頁面,防止程序崩潰。

  1. //頁面管理適配器 
  2. public class PagerAdapter extends PageSliderProvider { 
  3.     private ArrayList<Component> pages; 
  4.     //創(chuàng)建頁面所需元件 
  5.     public void setPages(ArrayList<Component> pages) { 
  6.         this.pages = pages; 
  7.     } 
  8.     @Override 
  9.     //獲取頁面數(shù)量及大小 
  10.     public int getCount() { 
  11.         return pages.size(); 
  12.     } 
  13.     @Override 
  14.     //特定位置創(chuàng)建頁面 
  15.     public Object createPageInContainer(ComponentContainer componentContainer, int i) { 
  16.         componentContainer.addComponent(pages.get(i)); 
  17.         return pages.get(i); 
  18.     } 
  19.     @Override 
  20.     //刪除特定頁面 
  21.     public void destroyPageFromContainer(ComponentContainer componentContainer, int i, Object o) { 
  22.         componentContainer.removeComponent(pages.get(i)); 
  23.     } 
  24.     //判定是否為同一張Page 
  25.     @Override 
  26.     public boolean isPageMatchToObject(Component component, Object o) { 
  27.         return component==o; 
  28.     } 

 (2)ViewPager 功能實現(xiàn)

滑動頁面功能由ViewPager類來完成,該類繼承自PageSlider,其主要用于通過響應(yīng)屏幕滑動完成頁面之間的切換,類中預(yù)留了三個接口:slideLock()、setCanSlide()、isCanScroll(),用戶可以在開發(fā)其他功能時調(diào)用此接口。isCanScroll()方法判斷頁面是否可以滑動,slideLock()方法設(shè)置頁面不可滑動,setCanSlide()方法設(shè)置頁面可以滑動。

  1. //接口預(yù)留 
  2. public class ViewPager extends PageSlider { 
  3.    ...... 
  4.     //設(shè)置頁面不可以滑動 
  5.     public void slideLock() { 
  6.         this.setSlidingPossible(false); 
  7.     } 
  8.     //設(shè)置頁面可以滑動 
  9.     public void setCanSlide() { 
  10.        this.setSlidingPossible(true); 
  11.     } 
  12.     //判斷頁面是否可以滑動 
  13.     public boolean isCanScroll() { 
  14.         return getSlidingPossible(); 
  15.     } 

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-10-19 10:04:51

鴻蒙HarmonyOS應(yīng)用

2021-07-06 18:21:31

鴻蒙HarmonyOS應(yīng)用

2021-04-20 15:06:42

鴻蒙HarmonyOS應(yīng)用

2021-04-08 14:57:52

鴻蒙HarmonyOS應(yīng)用

2021-11-17 15:37:43

鴻蒙HarmonyOS應(yīng)用

2021-07-20 15:20:40

鴻蒙HarmonyOS應(yīng)用

2021-04-15 17:47:38

鴻蒙HarmonyOS應(yīng)用

2021-11-02 14:54:21

鴻蒙HarmonyOS應(yīng)用

2021-08-10 15:23:08

鴻蒙HarmonyOS應(yīng)用

2021-03-12 16:35:33

鴻蒙HarmonyOS應(yīng)用

2021-06-29 09:28:16

鴻蒙HarmonyOS應(yīng)用

2021-03-10 15:03:40

鴻蒙HarmonyOS應(yīng)用

2021-04-29 14:32:24

鴻蒙HarmonyOS應(yīng)用

2021-06-17 14:56:00

鴻蒙HarmonyOS應(yīng)用

2021-03-24 09:30:49

鴻蒙HarmonyOS應(yīng)用

2021-07-28 09:40:04

鴻蒙HarmonyOS應(yīng)用

2021-03-03 09:42:26

鴻蒙HarmonyOS圖片裁剪

2021-08-03 10:07:41

鴻蒙HarmonyOS應(yīng)用

2021-08-26 16:07:46

鴻蒙HarmonyOS應(yīng)用

2021-03-01 14:00:11

鴻蒙HarmonyOS應(yīng)用
點贊
收藏

51CTO技術(shù)棧公眾號

国产乱人伦精品一区二区三区| 97热在线精品视频在线观看| 无限资源日本好片| 九色porny丨首页在线| 国产激情视频一区二区在线观看| 欧美黄色片在线观看| 在线免费观看黄色小视频| 欧美国产日韩电影| 一区二区久久久久久| 久久久久久精| ,亚洲人成毛片在线播放| 欧美日韩在线大尺度| 亚洲日韩中文字幕| 黄色片子免费看| 校园春色亚洲| 亚洲蜜桃精久久久久久久| 国产一区精品在线| 中文字幕日韩三级| 99精品国产在热久久婷婷| 中文字幕一区电影| 国产又黄又粗又猛又爽的视频| 777午夜精品电影免费看| 一区二区三区在线播| 蜜桃传媒视频麻豆一区| 国产成人精品免费看视频| 久久久亚洲一区| 欧美韩日一区二区| 日韩精品久久久久久久的张开腿让| 日韩视频一二区| 狠狠色噜噜狠狠狠狠97| 香蕉视频在线网址| 成人在线免费观看| 99久久精品一区二区| 川上优av一区二区线观看| 欧美亚洲另类小说| 亚洲国产专区| 欧美精品在线视频观看| jizz18女人高潮| 免费看成人哺乳视频网站| 日韩一区二区在线观看视频| 9久久婷婷国产综合精品性色| brazzers在线观看| 一卡二卡欧美日韩| 国产日本欧美在线| 日日夜夜精品一区| 国产日韩欧美精品一区| 麻豆av一区二区三区久久| 黄色a在线观看| 国产精品一区二区在线观看不卡| 欧美亚洲视频在线看网址| 久久久久久久伊人| 亚洲性感美女99在线| 欧美裸身视频免费观看| 在线免费观看亚洲视频| 久久久久久久久国产一区| 中文字幕日韩在线观看| 2019男人天堂| 日韩在线高清| 日韩中文在线观看| 国产亚洲精品久久久久久豆腐| 欧美在线免费看视频| 亚洲最新av在线| a级在线免费观看| 欧美精品momsxxx| 亚洲深夜福利网站| 日本美女xxx| 成人网18免费网站| 日韩中文理论片| 男人在线观看视频| 欧美成人精品| 欧美激情手机在线视频| 国产午夜精品无码| 9国产精品视频| 热99久久精品| 在线观看黄色国产| 国精产品一区一区三区mba桃花| 成人免费淫片视频软件| www.久久伊人| 成人国产免费视频| 蜜桃视频在线观看成人| 爱爱爱免费视频在线观看| 国产精品美女久久久久久久久 | 亚洲欧美日韩一区在线| 国产精品1000部啪视频| 成人在线一区| 插插插亚洲综合网| 日本少妇久久久| 午夜在线精品偷拍| 国产有码在线一区二区视频| www.热久久| 久久综合资源网| 亚洲一区二区三区午夜| 欧洲黄色一区| 色国产综合视频| 99sesese| 高清一区二区三区| 中文字幕亚洲一区二区三区五十路 | 亚洲精品国产精品国产自| 91视频免费观看网站| 久久伦理在线| 久久全球大尺度高清视频| 中文字幕免费观看| 国产精品一二一区| 蜜桃成人免费视频| 污污的网站在线免费观看| 欧美日韩精品在线视频| 午夜久久福利视频| 视频小说一区二区| 美女性感视频久久久| av图片在线观看| 国产一区二区三区四区五区美女| 精品欧美一区二区三区久久久| 国产三级视频在线| 亚洲一区二区在线免费看| 日本美女高潮视频| 菁菁伊人国产精品| 国产一区二区三区日韩欧美| 精品无码av在线| 毛片不卡一区二区| 国产亚洲第一区| 韩国中文字幕在线| 色噜噜久久综合| 特级特黄刘亦菲aaa级| 日韩dvd碟片| 欧美在线视频免费播放| www.四虎在线观看| 国产精品三级av在线播放| 国产97在线 | 亚洲| 电影中文字幕一区二区| 国产亚洲精品久久久久久牛牛| 久久久久久天堂| 紧缚捆绑精品一区二区| 色狠狠久久av五月综合|| 青青青免费在线视频| 欧美mv日韩mv| 三级影片在线看| 麻豆国产精品官网| 色大师av一区二区三区| 亚洲精品mv| 亚洲国产精品成人va在线观看| av成人免费网站| 亚洲一区激情| 国内一区在线| 久久亚洲导航| 欧美大黄免费观看| 国精品无码一区二区三区| 美女视频网站黄色亚洲| 日韩中文字幕av在线| 日本久久免费| 日韩精品中文字幕在线观看| 色播视频在线播放| 高清视频一区二区| 免费视频爱爱太爽了| 香港久久久电影| 欧美成人精品一区二区| 国产女人高潮毛片| 亚洲欧美日韩国产综合| 天天做天天干天天操| 999久久久精品国产| 国产在线观看一区二区三区 | 伊人久久久久久久久久久久| 91偷拍与自偷拍精品| 每日在线更新av| 亚洲精品亚洲人成在线观看| 日本久久久久久| 美丽的姑娘在线观看免费动漫| 色婷婷一区二区三区四区| 日韩人妻无码一区二区三区| 亚洲欧美日本国产专区一区| 欧美国产二区| 韩国精品主播一区二区在线观看| 在线日韩欧美视频| 91麻豆成人精品国产| 亚洲欧美欧美一区二区三区| 精品国产免费久久久久久婷婷| 国产一区激情| 久久天天狠狠| 成人免费一区| 欧美理论电影在线播放| 人妻无码中文字幕免费视频蜜桃| 欧美日韩国产在线| 人人妻人人澡人人爽| 老司机午夜精品| 久久亚洲a v| 网友自拍一区| 国产日本欧美在线观看 | 伊人成综合网yiren22| 国产成人aa精品一区在线播放| 9色在线视频网站| 日韩视频免费观看高清在线视频| 少妇一级淫片免费放中国| 国产日本一区二区| 日韩av一卡二卡三卡| 国产伊人精品| 欧美一区二区三区电影在线观看| 自拍偷拍亚洲图片| 668精品在线视频| 在线日本视频| 亚洲爱爱爱爱爱| 免费看av在线| 亚洲电影一区二区| 亚洲天堂岛国片| 国产高清在线观看免费不卡| 国产乱子夫妻xx黑人xyx真爽| 99精品一区| 久久久久久一区| 99久久99九九99九九九| 欧美亚洲激情视频| 先锋成人av| 国产一区二区三区高清在线观看| 午夜精品一区二区三| 在线精品视频小说1| 国产一级淫片免费| 中文字幕亚洲区| 六十路息与子猛烈交尾| 国内成人自拍视频| 久久久久国产精品熟女影院| 激情久久久久| 国产日产欧美一区二区| 国产精品一区二区av交换| 国产91精品一区二区绿帽| 成人在线不卡| 热re99久久精品国产66热| 天天色天天射天天综合网| 一区二区三区视频在线| 亚洲av成人精品一区二区三区在线播放 | 久久综合亚洲色hezyo国产| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲高清视频中文字幕| 欧美a在线播放| 91影院在线免费观看| 爱情岛论坛亚洲自拍| 蜜桃免费网站一区二区三区| 国产精品沙发午睡系列| 欧美性色综合| 神马午夜伦理影院| 91亚洲一区| 亚洲国产一区在线| 国产一区二区三区91| 久久一区二区三区av| gogo人体一区| 亚洲综合大片69999| 亚洲精品一区av| 国产精品亚洲视频在线观看 | 成人看片人aa| 欧美视频免费看| 国产精品男女猛烈高潮激情| 午夜不卡影院| 欧美诱惑福利视频| 中文字幕资源网在线观看免费| 久久久久久久激情视频| 欧美videossex| 欧美日韩亚洲成人| 四虎一区二区| 久草在线综合| 狠狠色综合网站久久久久久久| 综合激情五月婷婷| 成人一区二区三区四区| 日本少妇精品亚洲第一区| 91久久爱成人| 视频在线亚洲| av在线不卡一区| 嗯用力啊快一点好舒服小柔久久| 2022国产精品| 91蝌蚪精品视频| 国产不卡一区二区在线观看| 日韩一区二区三区精品| 97se国产在线视频| 国产精品国产| 国产精品乱码一区二区三区| 好吊妞国产欧美日韩免费观看网站 | 亚洲国产高清国产精品| 日韩av自拍| 国产精品8888| 在线精品一区| 欧美精品第三页| 美腿丝袜亚洲三区| 色婷婷综合在线观看| 成人免费毛片a| 丰满大乳奶做爰ⅹxx视频| 久久蜜桃香蕉精品一区二区三区| 偷拍夫妻性生活| 亚洲欧洲另类国产综合| 久久久无码一区二区三区| 精品国产1区2区| 中文字幕手机在线视频| 91 com成人网| 日本免费网站在线观看| 亚洲欧美国产视频| av片在线免费观看| 色综合久久精品亚洲国产| 国产一二在线播放| 国产精品美乳一区二区免费| 精品一区二区三区视频在线播放| 韩日午夜在线资源一区二区| 国产日产一区| 色哟哟免费网站| 免费在线日韩av| 一级黄色片在线免费观看| 成av人片一区二区| 99精品中文字幕| 亚洲r级在线视频| 中文在线最新版天堂| 精品美女一区二区| 成人在线免费观看| 久久久久久久久久久免费精品| 色婷婷综合久久久中字幕精品久久| 亚洲精品免费一区二区三区| 亚洲va久久久噜噜噜久久| 正在播放一区| 久久综合图片| 精品99999| 少妇喷水在线观看| 日韩中文在线视频| 神马久久午夜| 99九九视频| 久久中文字幕av| 两根大肉大捧一进一出好爽视频| 国内久久精品视频| 国产jjizz一区二区三区视频| 亚洲一级二级三级| 一级片视频网站| 国产一区二区三区免费视频| 白浆在线视频| 99精品国产一区二区| 久久亚洲精品中文字幕蜜潮电影| 无码人妻精品一区二区三区在线 | 香蕉乱码成人久久天堂爱免费| 中文字幕一区二区三区四区免费看 | 久久美女福利视频| 成人午夜av电影| 日韩在线中文字幕视频| 欧美日韩一区不卡| 黄色在线视频观看网站| 97碰碰碰免费色视频| 亚洲视频精选| 成人在线免费观看网址| 精品一区二区久久| 亚洲一级理论片| 在线观看亚洲精品视频| 青青草视频免费在线观看| 欧美极品xxxx| 91成人噜噜噜在线播放| 国产激情片在线观看| 韩国精品在线观看| 99热6这里只有精品| 欧美日韩国产免费| 2019中文字幕在线视频| 国产精品久久久久久久久久| 国产成人精品999在线观看| 妺妺窝人体色www在线小说| 成人一级片网址| 日本五十熟hd丰满| 亚洲国产精品推荐| 国产在线看片免费视频在线观看| 国产精品国产三级欧美二区| 亚洲欧美亚洲| 中文字幕在线观看91| 亚洲一二三四久久| 欧美熟妇交换久久久久久分类| 午夜精品99久久免费| 日韩精品免费一区二区夜夜嗨| 国产成人黄色片| ww久久中文字幕| 国产精品乱码一区二区视频| 国产一区二区三区中文| 欧美系列精品| 玖玖精品在线视频| k8久久久一区二区三区| 久久青青草视频| 国产一区二区三区三区在线观看| 成人午夜sm精品久久久久久久| 亚洲欧美日韩不卡| 国产·精品毛片| 国产一级精品视频| 中文字幕亚洲一区在线观看 | 亚洲欧美日韩国产一区二区| 中文字字幕码一二三区| 91精品办公室少妇高潮对白| 成人精品福利| 亚洲精品欧美日韩专区| 99国产一区| 白白色免费视频| 欧美日本精品一区二区三区| 在线观看中文字幕的网站| 国外成人免费视频| 秋霞电影网一区二区| 国产亚洲精品久久久久久豆腐| 日韩欧美中文字幕精品| 天堂8中文在线最新版在线| 亚洲欧洲日韩精品| 成人黄色网址在线观看| 久久夜色精品国产噜噜亚洲av| 中文国产亚洲喷潮| eeuss国产一区二区三区四区| 欧美日韩大尺度| 亚洲综合在线五月| 国产日本在线| 国产精品一 二 三| 蜜桃一区二区三区在线|