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

Android用戶界面設計:使用片段

移動開發 移動應用 Android
在前面我們介紹過Android界面設計的前五部分:基本按鈕、布局基礎、線性布局、相對布局和框架布局。本文我們將介紹第六部分:使用片段。

Android 3.0引入的新的片斷(Fragment)API,讓我們更容易地創建動態用戶界面。在這個教程中,我們學習如何將一個兩屏的ListView轉換成WebView流,以適應大屏幕的單屏流設計,比如在平板設備中。

這篇文章的節奏將比我們的入門教程更快一些。如果你對基本的Android控件或概念不熟悉你可能需要復習這個網站上我們其它的一些教程,甚至是Android API參考。最終的開源代碼可以在Google code上下載到。

片段簡介

在我們開始之間,讓我們在更高的層次上定義一下什么是片段。通常來說,片段是一大塊用戶界面,它具有自己的生存周期。如果它聽起來像一個Activity,那是因為它確實很像一個Activity。然而,片段與Activity不同,片段必須存在于Activity之內。片段不須要在它每次初始化的時候與同一個Activity配對,這使它具有一些靈活性。與Activity一樣,片段也無需包含任何用戶界面。

步驟0:開始

這個教程假設你讀過我們的列表視圖教程,你可以下載那個教程的代碼,并完成一些任務,然后開始,也可以直接下載這個教程的代碼直接開始。

步驟1:重新設計界面

下圖示意了我上在列表視圖教程中所提到的文章閱讀應用,我們還沒有考慮并使用片段:

 

這個流程在相對小屏幕上運行得很不錯。然而,在大屏幕上,比如Motorola Xoom平板的10寸屏幕上,在列表視圖上卻浪費了很多空間。WebView看起來正常,但是有點枯燥。

這就是要引入片段的地方:在大屏幕上,我們可以提供更有效的用戶界面,如果我們可以在同一屏上顯示ListView和WebView。當用戶點擊左邊“面板”的列表視圖中的某一項時,右邊的WebView更新顯示相應的內容。這種工作流程經常用于email或文檔或RSS閱讀器。下圖就是重新設計之后的界面示意圖:

 

步驟2:轉換為基于片段的設計

現在我們知道了新的流程應該如何設計,我們也知道當前的兩個活動必須轉換成片段。我們將分幾步來完成這個轉換。第一步保持界面樣子不變,只是使用片段修改每個界面內容。一個片段將包含當前的ListView,另一個包含WebView。然后我們再轉到單個屏幕的實現,修改ListView和WebView之間的消息傳遞。

首先,將你的程序的項目構建目標改變Android 3.0。在Eclipse中,右鍵點擊項目并選擇“屬性”。點擊Android部分并選中Android 3.0。我們不使用任何Google API,所以Android開源項目版本足夠了。然后點擊“確定”按鈕。

現在你就可以訪問新的API了,包括片段API。

注意:在將來的教程中,我們將討論如何使用新的兼容層來使得像片段API這樣的技術在更早版本的Android設備上也能工作。但是現在它只能運行在Android 3.0設備上。

步驟3:創建片段類

創建兩個Java類來代表兩個片段:ListView界面和WebView界面。將它們命名為TutListFragment和TutViewerFragment。TutListFragment將繼承ListFragment類,TutViewerFragment只是繼承Fragment類。

在TutListFragment類中,我們需要重寫兩個方法: onListItemClick()和onCreate()。這些方法的內容看起來應該很熟悉,它與之前我們講過的TutListActivity類的代碼一致。這個代碼很快就要修改,但是現在暫時不需要,下面是當前TutListFragment類的代碼:

  1. @Override 
  2.  
  3. public void onListItemClick(ListView l, View v, int position, long id) { 
  4.  
  5. String[] links = getResources().getStringArray(R.array.tut_links); 
  6.  
  7. String content = links[position]; 
  8.  
  9. Intent showContent = new Intent(getActivity().getApplicationContext(), 
  10.  
  11. TutViewerActivity.class); 
  12.  
  13. showContent.setData(Uri.parse(content)); 
  14.  
  15. startActivity(showContent); 
  16.  
  17.  
  18. @Override 
  19.  
  20. public void onCreate(Bundle savedInstanceState) { 
  21.  
  22. super.onCreate(savedInstanceState); 
  23.  
  24. setListAdapter(ArrayAdapter.createFromResource(getActivity() 
  25.  
  26. .getApplicationContext(), R.array.tut_titles, 
  27.  
  28. R.layout.list_item)); 
  29.  

TutViewerFragment類更簡單一些。我們基于當前片段運行在同一個活動下并且直接從Fragment類內問部獲取目標數據的事實。添加一個重寫onCreateView()方法。這個方法的代碼應該看起來像這樣:

  1. @Override 
  2.  
  3. public View onCreateView(LayoutInflater inflater, ViewGroup container, 
  4.  
  5. Bundle savedInstanceState) { 
  6.  
  7. Intent launchingIntent = getActivity().getIntent(); 
  8.  
  9. String content = launchingIntent.getData().toString(); 
  10.  
  11. WebView viewer = (WebView) inflater.inflate(R.layout.tut_view, container, false); 
  12.  
  13. viewer.loadUrl(content); 
  14.  
  15. return viewer; 
  16.  

直接訪問活動實例的能力非常有用,但是在后面會引起一個問題。如果這個片段存在于帶有列表片段的界面上會怎么樣呢?在那樣的情況下,就會沒有啟動目標來獲取URL。類似的在TutListFragment中,只要當用戶點擊一個列表項時我們都直接啟動一個新的Activity。如果TutViewFragment在同一個活動中存在什么怎么樣呢?如果這樣的話,啟動一個新的活動就沒有意義了。我們將在這個教程的后面回過頭來解決這個問題。

步驟4:添加片段布局資源

現在創建一個新的名為“tutlist_fragment.xml”的布局文件來表示包含文章列表的片段。片段布局資源使用你創建的Fragment類的標簽和引用。

  1. xmlns:android="http://schemas.android.com/apk/res/android" 
  2.  
  3. android:name="com.mamlambo.tutorial.tutlist.TutListFragment" 
  4.  
  5. android:layout_width="match_parent" 
  6.  
  7. android:layout_height="match_parent" 
  8.  
  9. android:id="@+id/tutlist_fragment"> 

接下來,創建一個類似的布局文件,叫做tutview_fragment.xml:

  1. xmlns:android="http://schemas.android.com/apk/res/android" 
  2.  
  3. android:name="com.mamlambo.tutorial.tutlist.TutViewerFragment" 
  4.  
  5. android:layout_width="match_parent" 
  6.  
  7. android:layout_height="match_parent" 
  8.  
  9. android:id="@+id/tutview_fragment"> 

步驟5:更新Activity類

TutListActivity和TutViewerActivity類必須修改。TutListActivity類只有一個方法,onCreate(),現在需要修改它來加載你在前一步創建的合適的片段布局資源,如下:

  1. @Override 
  2.  
  3. public void onCreate(Bundle savedInstanceState) { 
  4.  
  5. super.onCreate(savedInstanceState); 
  6.  
  7. setContentView(R.layout.tutlist_fragment); 
  8.  

TutListActivity應該繼承Activity類,而不是ListActivity類。

TutViewerActivity類也需要類似的修改,它的onCreate()方法現在看起來像這樣:

  1. @Override 
  2.  
  3. public void onCreate(Bundle savedInstanceState) { 
  4.  
  5. super.onCreate(savedInstanceState); 
  6.  
  7. setContentView(R.layout.tutview_fragment); 
  8.  

步驟6:檢查你的進度

嘗試現在運行程序。你會發現它和以前一樣。沒什么值得興奮的,不是么?然而,整個用戶界面現在使用片段來運行了。這使你需要做的下一步修改更加平滑,我們添加一個新的布局來組合兩個片段以在一個界面上顯示。然而可能你也注意到了,片段之間的通信的處理和我們文章之間的通信一樣。事實上,我們每個片段對應的活動保持不變。當一個活動包含并管理兩個片段時,這將不符合需求。首先讓我們來修復它。

步驟7:改變TutListFragment通信

像你在步驟3中學到的一樣,從TutListFragment對象直接啟動一個活動不再有效了。WebView UI可能與列表是同一個活動的一部分——總之那就是我們對于大屏幕的計劃。在那種情況下,我們只想在第二個片段中更新WebView的URL。

做這些修改,我們需要做幾件事情。首先,我們讓片段不依賴于它們所在的活動。要做到這一點,在TutListFragment類中添加一個偵聽器,如下:

  1. public interface OnTutSelectedListener { 
  2.  
  3. public void onTutSelected(Uri tutUri); 
  4.  

然后通過更新onListItemClickListener()方法來觸發它,如下:

  1. @Override 
  2.  
  3. public void onListItemClick(ListView l, View v, int position, long id) { 
  4.  
  5. String[] links = getResources().getStringArray(R.array.tut_links); 
  6.  
  7. String content = links[position]; 
  8.  
  9. tutSelectedListener.onTutSelected(Uri.parse(content)); 
  10.  

接下來讓TutListActivity類實現OnTutSelectedListener接口,如下:

  1. public class TutListActivity extends Activity implements 
  2.  
  3. TutListFragment.OnTutSelectedListener { 
  4.  
  5. ... 
  6.  
  7. @Override 
  8.  
  9. public void onTutSelected(Uri tutUri) { 
  10.  
  11. Intent showContent = new Intent(getApplicationContext(), 
  12.  
  13. TutViewerActivity.class); 
  14.  
  15. showContent.setData(tutUri); 
  16.  
  17. startActivity(showContent); 
  18.  

現在我們分離了片段的功能,這些功能用于處理用戶界面,作為控制器的活動,向下一個活動傳遞數據。我們后面要修改onTutSelected()方法來決定是否啟動一個新的活動實例或者更新現有的片段實例。

步驟8:改變TutViewerFragment通信

現在讓我們把注意力轉到TutViewerFragment類上,它的代碼也需要修改。片段不再查詢啟動目標來找出加載哪個URL,而是等待被通知要加載哪個URL。在樣,我們可以直接修改WebView而不需要每次加載都重新創建片段。

首先,修改TutViewerFragment類,讓它包含一個叫做updateUrl()的方法:

  1. public void updateUrl(String newUrl) { 
  2.  
  3. if (viewer != null) { 
  4.  
  5. viewer.loadUrl(newUrl); 
  6.  
  7.  

其次,刪除所有onCreateView()方法下的功能,除了inflate()的調用。在TutViewerActivity類中,添加這些功能檢索Intent然后調用updateUrl()方法,如下:

  1. @Override 
  2.  
  3. public void onCreate(Bundle savedInstanceState) { 
  4.  
  5. super.onCreate(savedInstanceState); 
  6.  
  7. setContentView(R.layout.tutview_fragment); 
  8.  
  9. Intent launchingIntent = getIntent(); 
  10.  
  11. String content = launchingIntent.getData().toString(); 
  12.  
  13. TutViewerFragment viewer = (TutViewerFragment) getFragmentManager() 
  14.  
  15. .findFragmentById(R.id.tutview_fragment); 
  16.  
  17. viewer.updateUrl(content); 
  18.  

此時此刻,程序的行為還是沒有變化。然而通過進一步的代碼,片段現在可以共存在同一個活動中或者分開。

步驟9:添加雙片段布局

現在讓我們來創建帶有兩個片段的布局,以供特定情況使用。在layout-land目錄(你可能需要自己創建),粘貼一份tutlist_fragment.xml。它將對橫屏和豎屏提供不同的布局。豎屏模式將保持不變。編輯這個文件如下:

  1. xmlns:android="http://schemas.android.com/apk/res/android" 
  2.  
  3. android:layout_width="match_parent" 
  4.  
  5. android:layout_height="match_parent" 
  6.  
  7. android:orientation="horizontal"
  8.  
  9. android:name="com.mamlambo.tutorial.tutlist.TutListFragment" 
  10.  
  11. android:layout_width="0dp" 
  12.  
  13. android:layout_height="match_parent" 
  14.  
  15. android:id="@+id/tutlist_fragment" 
  16.  
  17. android:layout_weight="45"
  18.  
  19. android:name="com.mamlambo.tutorial.tutlist.TutViewerFragment" 
  20.  
  21. android:layout_width="0dp" 
  22.  
  23. android:layout_height="match_parent" 
  24.  
  25. android:id="@+id/tutview_fragment" 
  26.  
  27. android:layout_weight="55"

這將界面分隔成水平地兩個片段(左右結構)。

步驟10:添加動態選項

現在我們可以為程序添加一些簡單的邏輯,可以在啟動一個新的活動(雙屏模式)和更新存在的片段(單屏模式)之間切換。

為了達到這個目的,更新TutListActivity類的onTutSelected()方法如下:

  1. @Override 
  2.  
  3. public void onTutSelected(String tutUrl) { 
  4.  
  5. TutViewerFragment viewer = (TutViewerFragment) getFragmentManager() 
  6.  
  7. .findFragmentById(R.id.tutview_fragment); 
  8.  
  9. if (viewer == null || !viewer.isInLayout()) { 
  10.  
  11. Intent showContent = new Intent(getApplicationContext(), 
  12.  
  13. TutViewerActivity.class); 
  14.  
  15. showContent.setData(Uri.parse(tutUrl)); 
  16.  
  17. startActivity(showContent); 
  18.  
  19. } else { 
  20.  
  21. viewer.updateUrl(tutUrl); 
  22.  
  23.  

我們所做的就是獲取片段并檢查它是否是現存的布局的一部分。如果不是,查看器活動啟動,否則更新已存在的片段。

步驟11:運行最新的使用片段的程序

到此,程序將有兩種模式:豎屏保持不變,橫屏顯示列表位于WebView的左側。現在可以做幾個改進,但是只是做微調,優化。比如,如果你在豎屏WebView模式下并旋轉屏幕,結果還是只有WebView界面。你必須點擊返回以獲得雙面視圖。程序修正不在這個教程講述的范圍,但是你可以發現,如果使用適當的布局并且加上一些活動邏輯,你可以對于不同的屏幕和設備做到非常強大和靈活。

 

總結

片段API幫助組織用戶界面組件,以使它們可以實現跨活動重用。這樣,程序可以在相對少的代碼量下,動態地適應它的流程和用戶界面。你也能看到基于片段構建的代碼更容易重新組織。更值得高興的是,通過Google提供的兼容庫,現在任何程序都可以使用片段了,它甚至兼容到Android 1.6。現在就使用片段來為每一個屏幕大小和形狀創建你的程序用戶界面吧!

【編輯推薦】

  1. Android用戶界面設計:基本按鈕
  2. Android用戶界面設計:布局基礎
  3. Android用戶界面設計:線性布局
  4. Android用戶界面設計:相對布局
  5. Android用戶界面設計:框架布局

 

責任編輯:佚名 來源: rockux
相關推薦

2011-04-22 11:01:36

框架布局界面設計Android

2011-04-11 17:07:33

布局基礎用戶界面設計Android

2011-04-11 17:25:30

線性布局用戶界面設計Android

2011-04-08 13:58:10

Android界面設計

2011-04-19 09:19:37

相對布局界面設計Android

2011-06-01 10:58:57

2011-06-01 10:30:41

用戶界面

2011-12-20 10:42:22

Android應用界面設計

2011-03-02 10:49:42

DashboardAndroid用戶界面設計模板

2013-11-27 10:12:11

2011-03-02 14:03:02

DashboardAndroid用戶界面反例模板

2012-01-16 16:16:49

JavaSwing

2011-06-01 16:50:05

Android ListView

2013-12-26 15:46:30

Android開發Android應用用戶界面設計

2014-11-26 10:42:55

界面設計

2012-01-16 11:03:09

javaswing

2011-06-01 09:31:46

用戶界面設計

2011-10-09 11:05:13

Android 4.0

2009-07-09 13:44:22

Swing動態界面設計

2014-04-03 09:49:20

設計界面設計
點贊
收藏

51CTO技術棧公眾號

亚洲国产欧美一区| 亚洲成人自拍偷拍| 成人性生交大片免费看小说| 久久久久亚洲av片无码| 亚洲天堂中文字幕在线观看| 午夜久久福利影院| 亚洲精品国产一区| 亚洲AV无码精品自拍| 99在线观看免费视频精品观看| 亚洲免费伊人电影在线观看av| 99视频免费播放| 黄色小网站在线观看| zzijzzij亚洲日本少妇熟睡| 国产精品久久久久高潮| 欧美激情精品久久| 国产欧美高清视频在线| 日韩免费电影网站| 亚洲少妇第一页| 国产经典三级在线| 国产精品久久国产精麻豆99网站 | 在线一区亚洲| 亚洲欧美丝袜中文综合| 国产一区二区三区综合| 国产91在线播放精品91| 久久久久黄色片| 91综合在线| 亚洲欧洲日产国产网站| 国产午夜精品久久久久久免费视 | 国产精品中文欧美| 国产精品电影在线观看| 亚洲精品午夜久久久久久久| 日韩中文首页| 亚洲午夜国产成人av电影男同| 亚洲三级在线视频| 国产精品亚洲成在人线| 精品久久久免费| 91视频 - 88av| 麻豆影视在线观看_| 国产日产欧美一区二区视频| 精品婷婷色一区二区三区蜜桃| av免费在线观看不卡| 青青草原综合久久大伊人精品优势 | 日本在线视频网址| 亚洲男人都懂的| 日韩视频在线免费播放| 在线视频91p| 日本一区二区综合亚洲| 欧洲亚洲一区二区| 秋霞av在线| 久久综合久久99| 精品视频一区二区| 青青草免费在线视频| av激情综合网| 精品久久久久久一区| 亚洲国产精品成人久久蜜臀| 国产精品一区专区| 99porn视频在线| 亚洲AV无码精品国产| 国产91富婆露脸刺激对白| 亚洲a区在线视频| 国产情侣在线播放| 国产精品18久久久久久久久久久久| 91精品国产综合久久香蕉| 在线视频1卡二卡三卡| 蜜臀av国产精品久久久久| 国产在线一区二区三区| 国产绿帽一区二区三区| 国产精品一区在线| 国产一区免费视频| 美女毛片在线看| 中文在线一区二区| 国产人妻互换一区二区| 精精国产xxxx视频在线中文版 | 亚洲熟妇av一区二区三区漫画| av在线视屏| 日韩欧美在线播放| 色婷婷综合网站| 久久9999免费视频| 亚洲精品999| 免费看裸体网站| 久久久久久久久99精品大| 欧美激情在线播放| 加勒比在线一区| 激情综合网最新| 国产欧美一区二区视频| 国产黄色片在线播放| 最新国产精品久久精品| 亚洲人成无码网站久久99热国产| 亚洲精品福利电影| 欧美日韩亚洲综合在线| 亚洲丝袜在线观看| 亚洲区小说区| 久久精品久久久久电影| 日韩精品久久久久久久| 日本午夜一本久久久综合| 2020国产精品久久精品不卡| 四虎精品在永久在线观看| 国产女主播一区| 91亚洲精品国产| 在线看欧美视频| 欧美一区二区三区四区高清| 黄色短视频在线观看| 99久久www免费| 992tv在线成人免费观看| 中文字幕1区2区3区| 成人精品视频一区二区三区尤物| 欧美在线视频二区| www在线看| 欧美高清视频在线高清观看mv色露露十八| 欧美日韩一区二区三区四区五区六区| 欧美日韩精品在线一区| 欧美激情欧美狂野欧美精品| 波多野结衣影片| 成人精品视频网站| 99精品一区二区三区的区别| 裤袜国产欧美精品一区| 欧美大片一区二区三区| 女人裸体性做爰全过| 亚洲久久视频| 91精品天堂| 欧美日韩在线看片| 欧美在线你懂的| 中文字幕乱码在线| 欧美三区视频| 91久久在线视频| 成人在线播放视频| 日韩欧美国产网站| 亚洲の无码国产の无码步美| 亚洲成人免费| 国产日产久久高清欧美一区| 欧美日韩国产综合视频 | 欧美性受xxx黑人xyx性爽| 不卡的av电影在线观看| 特级西西人体www高清大胆| 99re久久| 亚洲欧美日韩区| 午夜精品三级久久久有码| 国产成人精品免费| www.国产二区| 日韩一区二区三区精品 | 青青青免费在线视频| 欧美videos中文字幕| 放荡的美妇在线播放| 喷水一区二区三区| 亚洲成人自拍视频| 中文.日本.精品| 在线观看91久久久久久| 欧美日韩一级黄色片| 久久影视一区二区| 鲁一鲁一鲁一鲁一澡| 秋霞蜜臀av久久电影网免费| 国外色69视频在线观看| 欧性猛交ⅹxxx乱大交| 一区二区激情视频| 精品国产aⅴ一区二区三区东京热| 久久久久久久久久久久久久| 成人黄色片在线| 欧美69xxx| 日韩一级视频免费观看在线| 青娱乐91视频| 成人av免费在线观看| 久久国产精品网| 日本三级久久| 国产精品99久久久久久久久| 国产69精品久久app免费版| 色诱视频网站一区| 久久午夜精品视频| 国产在线一区观看| 青草网在线观看| 欧美影院天天5g天天爽| 日韩av日韩在线观看| av在线资源网| 欧美一级一区二区| 日韩av综合在线| 国产视频一区二区在线观看| 九九九在线观看视频| 欧美黄色录像片| 51国产成人精品午夜福中文下载| 女人天堂av在线播放| 亚洲男人的天堂网站| 亚洲综合精品视频| 亚洲一区在线视频观看| 五月婷婷综合在线观看| 蜜桃视频一区二区| 亚洲熟妇无码一区二区三区导航| 日韩极品少妇| 国产欧美一区二区| 成人福利电影| 在线午夜精品自拍| 亚洲精品无遮挡| 欧美综合色免费| 久久亚洲AV无码| 久久久久久久久久美女| 手机在线视频一区| 国产免费成人| 国产女主播av| 精品国产中文字幕第一页 | 亚洲精品久久久久久久久久| 欧美视频一区二区三区…| 中文乱码字幕高清一区二区| 成人动漫一区二区三区| 91亚洲免费视频| 国产欧美日韩一区二区三区在线| 中文字幕在线观看一区二区三区| 老牛精品亚洲成av人片| 91精品美女在线| 久久久久久久| 久久久久久久久久久久久久久久久久av| 二人午夜免费观看在线视频| 日韩免费高清视频| 91精品视频免费在线观看 | 99色精品视频| 午夜日韩激情| 一本一道久久a久久综合精品| 理论片一区二区在线| 成人精品aaaa网站| 日韩不卡在线| 26uuu日韩精品一区二区| 中文国产字幕在线观看| 色一区av在线| 久久电影中文字幕| 日韩精品中文字幕视频在线| 国内精品久久久久久久久久久| 欧美影视一区二区三区| 国产三级av片| 午夜久久福利影院| 久久精品国产亚洲av无码娇色 | 国产在线拍揄自揄拍无码| 国产一区二区三区91| 精品国产乱码一区二区三区四区| 高清国产一区二区三区四区五区| 国产精品国产福利国产秒拍| 综合毛片免费视频| 91精品国产免费久久久久久 | 国产精品久久久久77777| 国产精品xx| 久久久久久一区二区三区| av网站网址在线观看| 久久精品久久久久久国产 免费| 黄色av网站在线看| 亚洲天堂av综合网| 男同在线观看| 亚洲人线精品午夜| 精品99又大又爽又硬少妇毛片| 亚洲精品99久久久久中文字幕| 亚洲免费视频网| 精品国产百合女同互慰| 亚洲精品久久久久久久久久| 日韩精品中文字幕在线一区| 亚洲国产精品久久人人爱潘金莲| 日韩女优制服丝袜电影| 亚洲国产精品久久久久久久| 亚洲福利在线看| 天堂av在线免费| 亚洲精品在线视频| 国产美女视频一区二区三区| 有码中文亚洲精品| 幼a在线观看| 久久视频精品在线| 日本一级理论片在线大全| 欧美激情精品久久久久久| 免费影视亚洲| 日本精品视频在线| 99久久婷婷国产综合精品首页| 国产精品爽爽爽| 天堂久久一区| 亚洲free性xxxx护士hd| 国产精品国产| 欧美日韩一区在线播放| 日韩国产一区二区| 国产香蕉一区二区三区| 亚洲激情婷婷| 黄色成人免费看| 国产一区二区三区高清播放| 中文字幕视频观看| 久久夜色精品一区| 999精品在线视频| 亚洲一区二区视频在线观看| 亚洲欧美精品一区二区三区| 欧美亚洲综合网| 精品人妻伦一二三区久久| 日韩av一区在线观看| h视频在线观看免费| 久久人人爽人人爽爽久久| 日本大胆在线观看| 国产成人欧美在线观看| 伊人久久一区| 久久婷婷国产综合尤物精品| 久久密一区二区三区| 青草青青在线视频| 麻豆成人在线观看| 国产黄色三级网站| 国产精品久久久久一区二区三区 | 欧亚洲嫩模精品一区三区| 国产精品嫩草影院桃色| 日韩av在线免播放器| 久热国产在线| 日本成人激情视频| 日本精品在线播放| 视频一区在线免费观看| 亚洲一级电影| 日本中文字幕观看| 久久精品在这里| 久草视频手机在线观看| 欧美色图天堂网| 先锋av资源站| 欧美激情精品久久久久久免费印度 | 午夜视频一区| 香蕉视频网站入口| 福利一区二区在线观看| 亚洲欧美综合7777色婷婷| 精品美女久久久久久免费| 91资源在线视频| 亚洲一二在线观看| 僵尸再翻生在线观看免费国语| 成人福利在线视频| 精品国产午夜| 97在线免费公开视频| 粉嫩av一区二区三区粉嫩| 国产传媒免费在线观看| 欧洲一区二区av| 日本国产在线| 91成人免费观看网站| 99久久香蕉| 日本xxxxx18| 精品一区二区三区蜜桃| 超碰人人人人人人人| 一本久道久久综合中文字幕| 黄色小视频免费在线观看| 久久综合伊人77777蜜臀| 成人影院在线免费观看| 欧美日韩亚洲综合一区二区三区激情在线| 国内精品久久久久久久97牛牛 | 色欲av永久无码精品无码蜜桃| 久久综合电影一区| 国产成人免费av一区二区午夜 | 欧美卡一卡二| 91一区二区三区| 欧美在线免费| 男女视频在线观看网站| 亚洲啪啪综合av一区二区三区| 国产精品乱码久久久| 日韩中文在线观看| 欧美性aaa| 四虎永久免费网站| 国产一区二区免费看| 国产亚洲第一页| 精品精品国产高清a毛片牛牛| 欧美大片黄色| 国产原创精品| 香蕉成人久久| 久久精品视频18| 欧美色视频在线| 国产淫片在线观看| 成人三级视频在线观看一区二区| 欧美另类亚洲| 精品一区二区视频在线观看| 精品久久久久久中文字幕| 可以在线观看的av| 国产精品日韩欧美| 亚洲情侣在线| 91人人澡人人爽| 黑丝美女久久久| 成人在线视频成人| 91九色在线视频| 狠狠爱成人网| 欧美激情aaa| 在线播放国产精品二区一二区四区| www.久久ai| 久久精品日韩精品| 欧美aaaaa成人免费观看视频| 999精品视频在线观看播放| 日韩欧美在线观看一区二区三区| 欧美性受ⅹ╳╳╳黑人a性爽| 国内一区在线| 日本va欧美va精品发布| 国产黄在线免费观看| 亚洲成年人在线| 激情都市亚洲| 91精品国产毛片武则天| 97久久超碰国产精品电影| 中文有码在线播放| 欧美精品videos| 国产亚洲电影| 老司机av网站| 日本高清无吗v一区| 成年人黄视频在线观看| 久久av二区| 极品美女销魂一区二区三区| 国产区在线观看视频| 色婷婷综合久久久久| 久久365资源| 在线观看国产一级片| 香蕉久久一区二区不卡无毒影院| 国产人成在线观看| 国产精品久久久久免费| 日本怡春院一区二区| 国产真人真事毛片| 日韩中文字幕免费| 日韩精品福利一区二区三区|