精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

国产精品第一页在线观看| 欧美黑人又粗又大又爽免费| 成人午夜视频精品一区| 老司机在线精品视频| 精品电影在线观看| 日本视频一区二区不卡| 一级黄色大片免费观看| 欧美国产日本| caoporn国产一区二区| 97免费中文视频在线观看| 深爱五月激情网| 4438五月综合| 天天操天天干天天综合网| 日韩理论片在线观看| 国产精品玖玖玖| 99热免费精品| 色久欧美在线视频观看| zjzjzjzjzj亚洲女人| 亚洲精品在线影院| 一区二区三区四区视频精品免费 | 91色精品视频在线| 久久狠狠高潮亚洲精品| 日韩综合在线| 日韩av一区二区在线| 五月激情婷婷在线| 中文在线а√在线8| 亚洲乱码国产乱码精品精可以看 | 国产无套粉嫩白浆内谢| 日韩精品第一区| 亚洲国产成人在线播放| 激情黄色小视频| 美脚恋feet久草欧美| 亚洲国产精品精华液网站| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美美乳视频网站在线观看| 91亚洲国产成人久久精品麻豆| 亚洲黄色精品| 美女久久久久久久久久久| 无码h肉动漫在线观看| 成人福利一区| 91麻豆精品国产91久久久| 鲁一鲁一鲁一鲁一澡| 香蕉成人app免费看片| 国产精品国产三级国产普通话三级 | 99r国产精品视频| 国产精品sm调教免费专区| 99热在线精品观看| 午夜精品一区二区三区在线播放| 国产精品成人69xxx免费视频| 国产乱码精品一区二区亚洲| 欧美成人精品1314www| 99精品999| 在线观看免费版| 蜜臀av一区二区三区| 琪琪第一精品导航| 日韩三级视频在线播放| 国产精品第十页| 欧美成在线视频| 51精品免费网站| 婷婷色综合网| 精品国产拍在线观看| 中文字幕伦理片| 精品黄色一级片| 国产亚洲欧美日韩精品| 能免费看av的网站| 精品一区在线| 亚洲欧美999| 亚洲黄色在线网站| 午夜a一级毛片亚洲欧洲| 亚洲精品成人久久| 波多野结衣xxxx| 91国产精品| 91精品久久久久久久久99蜜臂| 嫩草视频免费在线观看| 精品成人18| 精品嫩草影院久久| 日韩成人网免费视频| 国产精品爱啪在线线免费观看| 中文字幕一区二区三区精品 | 性欧美xxxx| 在线观看福利片| 成人久久综合| 成年无码av片在线| 国产一级在线观看视频| 黄色日韩在线| 欧美做受高潮电影o| 91在线视频免费播放| www.在线视频.com| 91首页免费视频| 成人激情视频在线播放| 日本在线播放视频| 亚洲精品在线观看91| 欧美成人午夜免费视在线看片 | 亚洲午夜电影在线| 欧美有码在线视频| 国产乱码在线观看| 国产自产v一区二区三区c| 成人高h视频在线| 制服丨自拍丨欧美丨动漫丨| 成人欧美亚洲| 中文字幕一区二区三区不卡| 亚洲日本精品国产第一区| 神马久久久久久久| 欧美1区2区视频| 久久久亚洲国产天美传媒修理工| 欧美日韩在线中文| 黄色网址在线免费观看| 91色乱码一区二区三区| 日本黑人久久| 亚洲欧美一区二区三区在线观看| 国内精品久久久久久久影视麻豆 | 日本熟妇一区二区三区| 国产美女精品视频免费播放软件 | 91精品久久久久久久久99蜜臂| 妖精视频一区二区| 精品欧美不卡一区二区在线观看| 暴力调教一区二区三区| 午夜精品一区二区在线观看的| 国产主播在线播放| 视频一区欧美精品| 亚洲片国产一区一级在线观看| 成年人免费大片| 日韩影院在线| 欧美一区二区三区视频在线观看| 又黄又爽的网站| 高清中文字幕一区二区三区| 久久夜色精品一区| 国产精品露脸av在线| 好吊一区二区三区视频| 日韩三级毛片| 色激情天天射综合网| 亚洲一区二区三区四区视频| 日韩欧美第二区在线观看| 69视频免费看| 91视频91自| 成人免费看片'免费看| 男人与禽猛交狂配| 国产真实有声精品录音| 亚洲网站在线观看| 久久久国产高清| 国产69精品久久777的优势| 欧美一区激情视频在线观看| 亚洲国产精品成人久久蜜臀| 久久亚洲影视婷婷| 超碰97人人人人人蜜桃| 免费观看成年人视频| 亚洲免费播放| 日韩精品免费电影| 欧美日韩理论片| 日本在线小视频| 操你啦在线视频| 欧美日韩国产美| 丰满大乳奶做爰ⅹxx视频| 最新欧美色图| 亚洲五码中文字幕| 国产男女无遮挡猛进猛出| 亚洲人成色777777老人头| 日本一区二区三区久久久久久久久不 | 男女无套免费视频网站动漫| 最新电影电视剧在线观看免费观看| 美女视频黄频大全不卡视频在线播放 | 久久99久国产精品黄毛片色诱| 夜夜嗨av色综合久久久综合网| 私库av在线播放| 妖精视频一区二区三区| 欧美区一区二区三区| 在线视频国产一区| 黄网站欧美内射| 日p在线观看| 国产精品zjzjzj在线观看| 亚洲成人一区在线| 一区二区精品在线观看| 奴色虐av一区二区三区| 麻豆久久久久久久| 欧美日韩国产在线播放| 国产精品手机播放| 国产69久久| 精品国产一区二区三区久久久樱花 | 91麻豆免费视频网站| 国产91精品对白在线播放| 色天使色偷偷av一区二区| 一区二区三区国| 成人在线日韩| 国产一区二区三区四区大秀| 亚洲色图17p| 欧美亚洲精品天堂| 日韩中文字幕麻豆| 中文字幕中文字幕99| 久久wwww| 中文字幕综合一区| 精品无码久久久久久久| av亚洲产国偷v产偷v自拍| 少妇高潮喷水在线观看| 精品美女在线视频| 99视频在线| 九九热线视频只有这里最精品| 中文字幕日韩在线视频| 亚洲av无码乱码国产精品久久| 天天综合网 天天综合色| 免费黄色片网站| 国产成人综合精品三级| 国产视频在线视频| 亚洲视屏一区| 香蕉久久免费影视| 国产精品45p| 国产精品视频久久久| 免费看电影在线| 一区国产精品视频| 人妻91麻豆一区二区三区| 在线观看亚洲精品视频| 午夜偷拍福利视频| 国产精品高潮呻吟| 一区二区不卡免费视频| 精品一区二区三区在线播放| 精品少妇人妻av免费久久洗澡| 久久精品国产www456c0m| 精品国产一区二区三区四区vr| 久久亚洲国产精品尤物| 91av视频在线免费观看| 在线看一级片| 社区色欧美激情 | 青青青手机在线视频观看| 欧美一区二区三区免费大片 | 色欧美乱欧美15图片| 欧美黄色免费在线观看| 中文字幕第一区综合| 中文字幕一区二区三区人妻| 成人爽a毛片一区二区免费| 99re精彩视频| 天堂久久久久va久久久久| 久久久久久免费看| 精品素人av| 91天堂在线视频| 91欧美精品| 欧亚精品在线观看| 91福利区在线观看| 欧美成人激情在线| 黄在线免费观看| 中文字幕最新精品| jizz在线观看视频| 亚洲色图狂野欧美| 日本又骚又刺激的视频在线观看| 精品国产百合女同互慰| 五月天综合激情网| 亚洲成人在线免费| 久久精品国产亚洲av麻豆色欲| 综合中文字幕亚洲| 日韩福利小视频| 亚洲欧洲av在线| 奇米网一区二区| 日本一区二区三区四区在线视频| 在线观看福利片| 国产三级欧美三级日产三级99| 黄色a一级视频| 久久先锋影音av| 青青草视频成人| 2023国产精品| 亚洲久久久久久久| 国产亲近乱来精品视频| 天天操天天干天天操天天干| 欧美经典一区二区| 国产3级在线观看| 成人欧美一区二区三区小说 | 免费欧美一区| 欧美日韩电影一区二区| 久久99性xxx老妇胖精品| 欧美少妇一区| 日本一区二区免费高清| 亚洲一区三区视频在线观看| 97色伦图片97综合影院| 国产精品12p| 一道在线中文一区二区三区| 久久久久久久久久码影片| av日韩一区| 成人av播放| 婷婷成人影院| 四虎永久在线精品免费一区二区| 欧洲毛片在线视频免费观看| 亚洲欧洲一区二区福利| 亚洲国产精品成人| 妞干网在线视频观看| 男人天堂欧美日韩| 日本人69视频| 成人av电影在线播放| 免费看污片网站| 日韩毛片一二三区| 久久精品久久国产| 在线国产电影不卡| 99精品视频免费看| 欧美日韩综合在线| 国产伦一区二区| 亚洲成人网在线| 极品美乳网红视频免费在线观看| www.日韩欧美| 超碰在线中文字幕| 国产精品久久久久一区二区| 国产精品一区二区美女视频免费看 | av成人天堂| 中文字幕第80页| 国产福利91精品| 法国空姐电影在线观看| 亚洲女与黑人做爰| 中文字字幕在线中文| 正在播放亚洲一区| 男女视频在线观看免费| 久久成人18免费网站| 午夜伦理福利在线| 亚洲va电影大全| 国产精品一区二区三区av麻| 中文字幕日韩精品无码内射| 久久久综合网| 国产艳妇疯狂做爰视频| 国产精品乱码一区二三区小蝌蚪| 国产亚洲成人av| 欧美日韩亚洲国产综合| 五月天婷婷视频| 久久中文字幕在线视频| 欧美不卡高清一区二区三区| **亚洲第一综合导航网站| 成人一区而且| 337p粉嫩大胆噜噜噜鲁| 国产成人精品一区二区三区网站观看| 91精品国自产在线| 欧美日韩在线视频一区| 久久久久成人精品无码| 欧美日韩国产免费一区二区| 日韩三级电影网| 欧美国产视频日韩| 亚洲精品成a人ⅴ香蕉片| 欧美一区少妇| 亚洲女同同性videoxma| 丰满岳乱妇一区二区| 一区二区在线观看免费视频播放| 中文字幕日日夜夜| 国产视频精品在线| 欧产日产国产精品视频| 国产 高清 精品 在线 a| 久久久久久久久丰满| 欧美日韩一区二区三区69堂| 亚洲国产岛国毛片在线| 亚洲无码精品一区二区三区| 日韩电影在线观看永久视频免费网站| 污视频在线看网站| 超碰97在线资源| 国产一区二区三区四区老人| 色偷偷中文字幕| 亚洲欧美在线视频| 亚洲一区中文字幕永久在线| 在线播放日韩精品| 国产成人免费| 亚洲视频在线观看日本a| 男女性色大片免费观看一区二区 | 国产一二三四五| 久久99精品国产麻豆不卡| 午夜成人亚洲理伦片在线观看| 欧美日韩一区二区在线观看视频| 成人精品福利| 国产精品一二三在线| 爽成人777777婷婷| 国产大片一区二区三区| 亚洲人成网站在线| 朝桐光av在线一区二区三区| 欧美激情网站在线观看| 成人av资源网址| 国产中文字幕视频在线观看| 久久综合网色—综合色88| 精产国品一区二区| yellow中文字幕久久| 榴莲视频成人app| 天堂8在线天堂资源bt| jiyouzz国产精品久久| 欧美男人亚洲天堂| 日韩一级裸体免费视频| 午夜精品在线| 欧美变态另类刺激| 中文字幕国产一区| 国产男女无套免费网站| 久久久久久久av| 最新亚洲精品| 欧美午夜aaaaaa免费视频| 综合精品久久久| 亚洲爱爱综合网| 热99精品里视频精品| 日韩精品首页| 人妻精油按摩bd高清中文字幕| 性久久久久久久久久久久| 精品久久av| 亚洲在线第一页| 亚洲免费婷婷| 污软件在线观看| 日韩国产高清视频在线| 久久天天久久| 黄网站欧美内射| 欧美高清在线一区二区| 精品人妻少妇AV无码专区| 欧美一级片一区| 亚洲精品久久久| 成人免费网站黄| 日韩一区二区免费在线观看| 伊人色综合一区二区三区影院视频 |