国产自产第一-国产自产对白一区-国产自产精品-国产自产区44页-国产自产在线-国产自产自拍-国产自产自拍视频-国产自精品

金喜正规买球

Xamarin Forms的Prism第二部分:基本導航和依賴注入(Dependency Injection)模式

原創|使用教程|編輯:黃竹雯|2016-09-18 18:01:27.000|閱讀 1777 次

概述:本系列的第2部分展示了Prism如何在一個MVVM應用程序中啟動導航。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

前一篇文章中,我們已經開始介紹在Xamarin Forms應用程序中如何利用Prism(6.2)的新版本來實現MVVM模式的基本概念。到目前為止,我們還沒有看到什么特別的東西是我們用另一個框架做不到的:我們在上一篇文章中創建了一個視圖(View)、一個視圖模型(ViewModel),然后我們通過綁定連接它們。在這篇文章中,我們將看到Prism如何幫助處理一個在MVVM應用程序中很難處理的非常常見的場景:導航和頁面的生命周期。

Xamarin Forms的Prism第二部分:基本導航和依賴注入(Dependency Injection)模式

正如我們在前一篇文章中提到的,我們要為TrackSeries——一個提供電視節目信息的網站,創建一個簡單的客戶端。該應用程序將顯示當前的頂級系列,將允許用戶發現更多關于它的內容。為了實現這一目標,我們可以用一組網站提供的REST服務,這是非常簡單的使用和處理REST服務的遵循標準的最佳實踐:你調用一個使用HTTP命令的URL,接收返回一個JSON響應結果。

舉個例子,如果你想知道哪些是頂級系列,你可以執行一個HTTP GET請求到以下URL:。服務將返回給你一個JSON響應,包含頂級系列的所有細節:

[
   {
      "id":121361,
      "name":"Game of Thrones",
      "followers":10230,
      "firstAired":"2011-04-17T21:00:00-04:00",
      "country":"us",
      "overview":"Seven noble families fight for control of the mythical land of Westeros. Friction between the houses leads to full-scale war. All while a very ancient evil awakens in the farthest north. Amidst the war, a neglected military order of misfits, the Night's Watch, is all that stands between the realms of men and the icy horrors beyond.",
      "runtime":55,
      "status":"Continuing",
      "network":"HBO",
      "airDay":"Sunday",
      "airTime":"9:00 PM",
      "contentRating":"TV-MA",
      "imdbId":"tt0944947",
      "tvdbId":121361,
      "tmdbId":1399,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/121361-49.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/121361-15.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/121361-g22.jpg"
      },
      "genres":[
         {
            "id":2,
            "name":"Adventure"
         },
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":5,
            "name":"Fantasy"
         }
      ],
      "added":"2014-08-08T13:30:46.227",
      "lastUpdated":"2016-08-18T03:03:50.05",
      "followedByUser":false,
      "slugName":"game-of-thrones"
   },
   {
      "id":257655,
      "name":"Arrow",
      "followers":7517,
      "firstAired":"2012-10-10T20:00:00-04:00",
      "country":"us",
      "overview":"Oliver Queen and his father are lost at sea when their luxury yacht sinks. His father doesn't survive. Oliver survives on an uncharted island for five years learning to fight, but also learning about his father's corruption and unscrupulous business dealings. He returns to civilization a changed man, determined to put things right. He disguises himself with the hood of one of his mysterious island mentors, arms himself with a bow and sets about hunting down the men and women who have corrupted his city.",
      "runtime":45,
      "status":"Continuing",
      "network":"The CW",
      "airDay":"Wednesday",
      "airTime":"8:00 PM",
      "contentRating":"TV-14",
      "imdbId":"tt2193021",
      "tvdbId":257655,
      "tmdbId":1412,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/257655-8.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/257655-47.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/257655-g9.jpg"
      },
      "genres":[
         {
            "id":1,
            "name":"Action"
         },
         {
            "id":2,
            "name":"Adventure"
         },
         {
            "id":4,
            "name":"Drama"
         }
      ],
      "added":"2014-08-08T13:37:00.133",
      "lastUpdated":"2016-08-15T03:11:32.013",
      "followedByUser":false,
      "slugName":"arrow"
   },
   {
      "id":153021,
      "name":"The Walking Dead",
      "followers":7185,
      "firstAired":"2010-10-31T21:00:00-04:00",
      "country":"us",
      "overview":"The world we knew is gone. An epidemic of apocalyptic proportions has swept the globe causing the dead to rise and feed on the living. In a matter of months society has crumbled. In a world ruled by the dead, we are forced to finally start living. Based on a comic book series of the same name by Robert Kirkman, this AMC project focuses on the world after a zombie apocalypse. The series follows a police officer, Rick Grimes, who wakes up from a coma to find the world ravaged with zombies. Looking for his family, he and a group of survivors attempt to battle against the zombies in order to stay alive.\n",
      "runtime":50,
      "status":"Continuing",
      "network":"AMC",
      "airDay":"Sunday",
      "airTime":"9:00 PM",
      "contentRating":"TV-MA",
      "imdbId":"tt1520211",
      "tvdbId":153021,
      "tmdbId":1402,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/153021-38.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/153021-77.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/153021-g44.jpg"
      },
      "genres":[
         {
            "id":1,
            "name":"Action"
         },
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":6,
            "name":"Horror"
         },
         {
            "id":20,
            "name":"Suspense"
         }
      ],
      "added":"2014-08-08T13:31:18.617",
      "lastUpdated":"2016-08-18T03:04:00.28",
      "followedByUser":false,
      "slugName":"the-walking-dead"
   },
   {
      "id":279121,
      "name":"The Flash (2014)",
      "followers":7069,
      "firstAired":"2014-10-07T20:00:00-04:00",
      "country":"us",
      "overview":"After a particle accelerator causes a freak storm, CSI Investigator Barry Allen is struck by lightning and falls into a coma. Months later he awakens with the power of super speed, granting him the ability to move through Central City like an unseen guardian angel. Though initially excited by his newfound powers, Barry is shocked to discover he is not the only \"meta-human\" who was created in the wake of the accelerator explosion – and not everyone is using their new powers for good. Barry partners with S.T.A.R. Labs and dedicates his life to protect the innocent. For now, only a few close friends and associates know that Barry is literally the fastest man alive, but it won't be long before the world learns what Barry Allen has become... The Flash.",
      "runtime":45,
      "status":"Continuing",
      "network":"The CW",
      "airDay":"Tuesday",
      "airTime":"8:00 PM",
      "contentRating":"TV-14",
      "imdbId":"tt3107288",
      "tvdbId":279121,
      "tmdbId":60735,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/279121-37.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/279121-23.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/279121-g7.jpg"
      },
      "genres":[
         {
            "id":1,
            "name":"Action"
         },
         {
            "id":2,
            "name":"Adventure"
         },
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":8,
            "name":"Science-Fiction"
         }
      ],
      "added":"2014-08-08T13:45:59.087",
      "lastUpdated":"2016-08-17T03:09:18.7",
      "followedByUser":false,
      "slugName":"the-flash-2014"
   },
   {
      "id":80379,
      "name":"The Big Bang Theory",
      "followers":6922,
      "firstAired":"2007-09-25T20:00:00-04:00",
      "country":"us",
      "overview":"What happens when hyperintelligent roommates Sheldon and Leonard meet Penny, a free-spirited beauty moving in next door, and realize they know next to nothing about life outside of the lab. Rounding out the crew are the smarmy Wolowitz, who thinks he's as sexy as he is brainy, and Koothrappali, who suffers from an inability to speak in the presence of a woman.",
      "runtime":25,
      "status":"Continuing",
      "network":"CBS",
      "airDay":"Monday",
      "airTime":"8:00 PM",
      "contentRating":"TV-PG",
      "imdbId":"tt0898266",
      "tvdbId":80379,
      "tmdbId":1418,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/80379-43.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/80379-38.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/80379-g28.jpg"
      },
      "genres":[
         {
            "id":3,
            "name":"Comedy"
         }
      ],
      "added":"2014-08-08T13:27:13.18",
      "lastUpdated":"2016-08-18T03:03:10.947",
      "followedByUser":false,
      "slugName":"the-big-bang-theory"
   },
   {
      "id":176941,
      "name":"Sherlock",
      "followers":6387,
      "firstAired":"2010-07-25T20:30:00+01:00",
      "country":"gb",
      "overview":"Sherlock is a British television crime drama that presents a contemporary adaptation of Sir Arthur Conan Doyle's Sherlock Holmes detective stories. Created by Steven Moffat and Mark Gatiss, it stars Benedict Cumberbatch as Sherlock Holmes and Martin Freeman as Doctor John Watson.",
      "runtime":90,
      "status":"Continuing",
      "network":"BBC One",
      "airDay":"Sunday",
      "airTime":"8:30 PM",
      "contentRating":"TV-14",
      "imdbId":"tt1475582",
      "tvdbId":176941,
      "tmdbId":19885,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/176941-11.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/176941-3.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/176941-g5.jpg"
      },
      "genres":[
         {
            "id":2,
            "name":"Adventure"
         },
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":14,
            "name":"Crime"
         },
         {
            "id":16,
            "name":"Mystery"
         },
         {
            "id":21,
            "name":"Thriller"
         }
      ],
      "added":"2014-08-08T13:32:27.247",
      "lastUpdated":"2016-08-17T03:07:09.747",
      "followedByUser":false,
      "slugName":"sherlock"
   },
   {
      "id":263365,
      "name":"Marvel's Agents of S.H.I.E.L.D.",
      "followers":5372,
      "firstAired":"2013-09-24T22:00:00-04:00",
      "country":"us",
      "overview":"Phil Coulson (Clark Gregg, reprising his role from \"The Avengers\" and \"Iron Man\" ) heads an elite team of fellow agents with the worldwide law-enforcement organization known as SHIELD (Strategic Homeland Intervention Enforcement and Logistics Division), as they investigate strange occurrences around the globe. Its members -- each of whom brings a specialty to the group -- work with Coulson to protect those who cannot protect themselves from extraordinary and inconceivable threats, including a formidable group known as Hydra.",
      "runtime":45,
      "status":"Continuing",
      "network":"ABC (US)",
      "airDay":"Tuesday",
      "airTime":"10:00 PM",
      "contentRating":"TV-PG",
      "imdbId":"tt2364582",
      "tvdbId":263365,
      "tmdbId":1403,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/263365-16.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/263365-26.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/263365-g7.jpg"
      },
      "genres":[
         {
            "id":1,
            "name":"Action"
         },
         {
            "id":2,
            "name":"Adventure"
         },
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":5,
            "name":"Fantasy"
         },
         {
            "id":8,
            "name":"Science-Fiction"
         }
      ],
      "added":"2014-08-08T13:39:45.967",
      "lastUpdated":"2016-08-18T03:05:30.987",
      "followedByUser":false,
      "slugName":"marvels-agents-of-shield"
   },
   {
      "id":81189,
      "name":"Breaking Bad",
      "followers":5227,
      "firstAired":"2008-01-20T21:00:00-04:00",
      "country":"us",
      "overview":"Walter White, a struggling high school chemistry teacher, is diagnosed with advanced lung cancer. He turns to a life of crime, producing and selling methamphetamine accompanied by a former student, Jesse Pinkman, with the aim of securing his family's financial future before he dies.",
      "runtime":45,
      "status":"Ended",
      "network":"AMC",
      "airDay":"Sunday",
      "airTime":"9:00 PM",
      "contentRating":"TV-MA",
      "imdbId":"tt0903747",
      "tvdbId":81189,
      "tmdbId":1396,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/81189-10.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/81189-21.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/81189-g21.jpg"
      },
      "genres":[
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":14,
            "name":"Crime"
         },
         {
            "id":20,
            "name":"Suspense"
         },
         {
            "id":21,
            "name":"Thriller"
         }
      ],
      "added":"2014-08-08T13:27:33.917",
      "lastUpdated":"2016-08-13T03:01:47.063",
      "followedByUser":false,
      "slugName":"breaking-bad"
   },
   {
      "id":247808,
      "name":"Suits",
      "followers":4835,
      "firstAired":"2011-06-24T21:00:00-04:00",
      "country":"us",
      "overview":"Suits follows college drop-out Mike Ross, who accidentally lands a job with one of New York's best legal closers, Harvey Specter. They soon become a winning team with Mike's raw talent and photographic memory, and Mike soon reminds Harvey of why he went into the field of law in the first place.",
      "runtime":45,
      "status":"Continuing",
      "network":"USA Network",
      "airDay":"Wednesday",
      "airTime":"9:00 PM",
      "contentRating":"TV-14",
      "imdbId":"tt1632701",
      "tvdbId":247808,
      "tmdbId":37680,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/247808-27.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/247808-43.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/247808-g17.jpg"
      },
      "genres":[
         {
            "id":4,
            "name":"Drama"
         }
      ],
      "added":"2014-08-08T13:33:45.423",
      "lastUpdated":"2016-08-18T03:04:21.37",
      "followedByUser":false,
      "slugName":"suits"
   },
   {
      "id":274431,
      "name":"Gotham",
      "followers":4718,
      "firstAired":"2014-09-23T20:00:00-04:00",
      "country":"us",
      "overview":"An action-drama series following rookie detective James Gordon as he battles villains and corruption in pre-Batman Gotham City.",
      "runtime":45,
      "status":"Continuing",
      "network":"FOX (US)",
      "airDay":"Monday",
      "airTime":"8:00 PM",
      "contentRating":"TV-14",
      "imdbId":"tt3749900",
      "tvdbId":274431,
      "tmdbId":60708,
      "language":"en",
      "images":{
         "poster":"//static.trackseries.tv/banners/posters/274431-17.jpg",
         "fanart":"//static.trackseries.tv/banners/fanart/original/274431-22.jpg",
         "banner":"//static.trackseries.tv/banners/graphical/274431-g6.jpg"
      },
      "genres":[
         {
            "id":1,
            "name":"Action"
         },
         {
            "id":4,
            "name":"Drama"
         },
         {
            "id":8,
            "name":"Science-Fiction"
         },
         {
            "id":14,
            "name":"Crime"
         },
         {
            "id":21,
            "name":"Thriller"
         }
      ],
      "added":"2014-08-08T13:44:55.4",
      "lastUpdated":"2016-08-17T03:08:55.473",
      "followedByUser":false,
      "slugName":"gotham"
   }
]

為了使用這些應用程序中的API,我用一組方法創建了一個稱為TsApiService的類,通過.NET框架和流行的JSON.NET庫的HttpClient類,負責下載JSON,解析它并返回一組可以使用C#很容易地操縱的對象。為了更好地構成我的解決方案, 我已經決定把所有的通信相關類與REST API (如服務和實體)放置在另一個叫做InfoSeries.Core的便攜式類庫(Portable Class Library)中,這是一個與實際Xamarin Forms應用程序的相比不同的PCL。

這就是負責解析之前的JSON的方法返回一個C#對象列表:

public async Task<List<SerieFollowersVM>> GetStatsTopSeries()
{
    using (HttpClient client = new HttpClient())
    {
        try
        {
            var response = await client.GetAsync("//api.trackseries.tv/v1/Stats/TopSeries");
            if (!response.IsSuccessStatusCode)
            {
                var error = await response.Content.ReadAsAsync<TrackSeriesApiError>();
                var message = error != null ? error.Message : "";
                throw new TrackSeriesApiException(message, response.StatusCode);
            }
            return await response.Content.ReadAsAsync<List<SerieFollowersVM>>();
        }
        catch (HttpRequestException ex)
        {
            throw new TrackSeriesApiException("", false, ex);
        }
        catch (UnsupportedMediaTypeException ex)
        {
            throw new TrackSeriesApiException("", false, ex);
        }
    }
}

HttpClient類的GetAsync() 方法執行GET請求到URL,返回結果包含JSON響應的字符串。這個結果存儲在響應的Content 屬性:如果請求成功(我們使用IsSuccessStatusCode 屬性檢查這種情況),我們使用Content 屬性公開的ReadAsAsync< T >方法自動轉換為JSON導致SerieFollowersVM 對象的集合。SerieFollowersVM 無非是一個映射JSON響應的每個屬性的類 (如name、countryruntime)到一個C#屬性:

public class SerieFollowersVM
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Followers { get; set; }
    public DateTimeOffset FirstAired { get; set; }
    public string Country { get; set; }
    public string Overview { get; set; }
    public int Runtime { get; set; }
    public string Status { get; set; }
    public string Network { get; set; }
    public DayOfWeek? AirDay { get; set; }
    public string AirTime { get; set; }
    public string ContentRating { get; set; }
    public string ImdbId { get; set; }
    public int TvdbId { get; set; }
    public string Language { get; set; }
    public ImagesSerieVM Images { get; set; }
    public ICollection<GenreVM> Genres { get; set; }
    public DateTime Added { get; set; }
    public DateTime LastUpdated { get; set; }
    public string SlugName { get; set; }
}

在GitHub的完整示例(為了方便各位讀者,小編已經為大家整理了,請點擊這里下載)中你會發現很多這樣的類(映射各種被TrackSeries API返回的JSON響應)。此外,TsApiService 將實現另外的方法,一個用于我們想在我們的應用程序中利用的每個API的方法。我不會詳細解釋每個方法,因為這將超出本文的范圍,你可以在GitHub上看到所有的細節。對于這篇文章的目的,你只需要知道服務只是公開了一組方法,我們可以在各種ViewModels中使用來檢索可用的電視節目的信息。

注意:默認情況下,HttpClient 類沒有提供一個ReadAsAsync< T >方法,能夠自動對JSON響應為C#對象進行反序列化。為了獲得該擴展方法,我們需要添加Microsoft.AspNet.WebApi.Client NuGet包到便攜類庫(Portable Class Library)。為了讓它正常工作,你需要將這個包添加到解決方案的每個項目(Xamarin Forms PCL、Core PCL和所有特定于平臺的項目)。

然而,為了正確利用依賴注入(dependency injection),我們需要一個接口來描述TsApiService 類提供的操作。這就是我們的接口的樣子:

public interface ITsApiService
{
    Task<List<SerieFollowersVM>> GetStatsTopSeries();
    Task<SerieVM> GetSerieByIdAll(int id);
    Task<SerieInfoVM> GetSerieById(int id);
    Task<List<SerieSearch>> GetSeriesSearch(string name);
    Task<SerieFollowersVM> GetStatsSerieHighlighted();
}

現在我們有了一個服務,我們可以學習(多虧Prism)我們可以如何注冊到它的依賴容器,它會自動注入在我們的ViewModels。實際上,從這個角度來看,沒有什么特別強調:這與其他MVVM框架使用的方法是相同的,利用依賴注入的方法。首先,我們需要注冊我們想要在容器中使用的接口和實現之間的協會。在Prism的情況下,我們需要用App類的RegisterTypes()方法,通過使用Container對象和RegisterType< T, Y >()方法(其中T 是接口,Y是具體實現):

protected override void RegisterTypes()
{
    Container.RegisterTypeForNavigation<MainPage>();
    Container.RegisterType<ITsApiService, TsApiService>();
}

MainPage TsApiService 都在容器注冊了,我們可以在ViewModel獲得它,只需添加一個參數在公共構造函數,就像以下示例:

public class MainPageViewModel : BindableBase
{
    private readonly ITsApiService _apiService;
    public MainPageViewModel(ITsApiService apiService)
    {
        _apiService = apiService;
    }
}

MainPageViewModel 類將被加載時,我們已經在容器注冊的ITsApiService實現(在我們的例子中是TsApiService 類)將自動注入構造函數的參數,允許我們以我們將在ViewModel創建的所有其他的方法和屬性來使用它。使用這種方法,我們將容易改變服務的實現,以防我們需要它:它將足以改變App類的注冊類型,并且每個ViewModel將自動開始使用新的版本。

處理導航的生命周期

現在我們有一個服務,它提供了一種方法來檢索頂級系列的列表,在ViewModel加載時我們需要調用它。我們的目標是顯示(在應用程序的主頁)最熱門的電視節目列表。但是,我們即將面對使用MVVM模式時的一個常見的問題:檢索頂級系列列表的方法是異步的,但是隨著當前實現,唯一我們可以執行數據加載的地方就是ViewModel的構造函數,它不能執行異步調用(在C#中,事實上,一個類的構造函數不能用async關鍵字,因此,你不能用等待前綴的方法)。在non-MVVM應用程序中,這個問題很容易解決,因為導航的生命周期方法是由每一個平臺基本提供的。Xamarin Forms毫無例外,我們可以利用(在XAML頁面類的后面的代碼)OnAppearing()OnDisappearing()方法:因為它們是事件,我們可以沒有問題地調用異步代碼。

為了解決這個問題,Prism提供一個稱為INavigationAware的接口,我們可以在ViewModels實現。當我們實現它,我們可以訪問OnNavigatedTo()OnNavigatedFrom()事件,我們可以使用它們來執行數據加載或清理操作。這就是實現這個接口后我們的MainPageViewModel 的樣子:

public class MainPageViewModel : BindableBase, INavigationAware
{
    private readonly TsApiService _apiService;
    private ObservableCollection<SerieFollowersVM> _topSeries;
    public ObservableCollection<SerieFollowersVM> TopSeries
    {
        get { return _topSeries; }
        set { SetProperty(ref _topSeries, value); }
    }
    public MainPageViewModel(TsApiService apiService)
    {
        _apiService = apiService;
    }
    public void OnNavigatedFrom(NavigationParameters parameters)
    {
    }
    public async void OnNavigatedTo(NavigationParameters parameters)
    {
        var result = await _apiService.GetStatsTopSeries();
        TopSeries = new ObservableCollection<SerieFollowersVM>(result);
    }
}

正如你所看到的,現在我們實現了一個稱為OnNavigatedTo()的方法,我們可以安全地執行異步調用和加載數據。我們調用TsApiService類的GetStatsTopSeries()方法,我們封裝結果集合到ObservableCollection屬性。這是我們要連接的屬性,通過綁定到一個ListView 控件,為了在主頁顯示電視節目列表。

出于完整性的考慮,這是MainPage的XAML的樣子:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="//xamarin.com/schemas/2014/forms"
             xmlns:x="//schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="InfoSeries.Views.MainPage"
             Title="Info Series">
  <ContentPage.Resources>
    <ResourceDictionary>
      <DataTemplate x:Key="TopSeriesTemplate">
        <ViewCell>
          <ViewCell.View>
            <Grid>
              <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*" />
                <ColumnDefinition Width="2*" />
              </Grid.ColumnDefinitions>
              <Image Source="{Binding Images.Poster}" Grid.Column="0" x:Name="TopImage" />
              <StackLayout Grid.Column="1" Margin="12, 0, 0, 0" VerticalOptions="Start">
                <Label Text="{Binding Name}" FontSize="18" TextColor="#58666e" FontAttributes="Bold" />
                <StackLayout Orientation="Horizontal">
                  <Label Text="Runtime: " FontSize="14" TextColor="#58666e" />
                  <Label Text="{Binding Runtime}" FontSize="14" TextColor="#98a6ad" Margin="5, 0, 0, 0" />
                </StackLayout>
                <StackLayout Orientation="Horizontal">
                  <Label Text="Air day: " FontSize="14" TextColor="#58666e" />
                  <Label Text="{Binding AirDay}" FontSize="14" TextColor="#98a6ad" Margin="5, 0, 0, 0" />
                </StackLayout>
                <StackLayout Orientation="Horizontal">
                  <Label Text="Country: " FontSize="14" TextColor="#58666e" />
                  <Label Text="{Binding Country}" FontSize="14" TextColor="#98a6ad" Margin="5, 0, 0, 0" />
                </StackLayout>
                <StackLayout Orientation="Horizontal">
                  <Label Text="Network: " FontSize="14" TextColor="#58666e" />
                  <Label Text="{Binding Network}" FontSize="14" TextColor="#98a6ad" Margin="5, 0, 0, 0" />
                </StackLayout>
              </StackLayout>
            </Grid>
          </ViewCell.View>
        </ViewCell>
      </DataTemplate>
    </ResourceDictionary>
  </ContentPage.Resources>
  <ListView ItemTemplate="{StaticResource TopSeriesTemplate}"
            ItemsSource="{Binding Path=TopSeries}" RowHeight="200"/>
</ContentPage>

如果你已經知道Xamarin Forms(或一般的XAML),你應該會覺得這段代碼很容易理解:頁面包含一個ListView 控件、一個描述單個電視節目的模板。我們展示節目的海報,還有一些其他信息,如標題、運行時、生產國家等等。因為(根據命名約定)MainPageViewModel 類已經設置為頁面的BindingContext ,我們可以通過綁定ListViewItemsSource屬性和我們之前在ViewModel填充的TopSeries集合進行簡單地連接。

導航與參數

我們已經看到了如何利用OnNavigatedTo()方法來執行數據加載,但通常這種方法在另一個場景中也是有用的:檢索參數通過前一頁,這通常需要了解當前的上下文(在我們的示例中,在我們的應用程序的詳細信息頁面,我們需要理解用戶已經選擇的電視節目)。

Prism支持這個特性是由于一個稱為NavigationParameters的類稱,可以作為NavigationServiceNavigationAsync()方法的一個可選參數傳遞,它被自動包括作為OnNavigatedTo()OnNavigatedFrom()事件的參數。讓我們看看如何通過向我們的應用程序添加詳細信息頁面利用這個特性,顯示選擇的節目的一些額外的信息。

第一步是同時添加一個新頁面到Views 文件夾中(稱為DetailPage.xaml)和一個新類到ViewModels文件夾中(稱為DetailPageViewModel.cs)。你需要記住,每一頁都需要在App類的容器中注冊,在OnRegisterTypes()方法內:

protected override void RegisterTypes()
{
    Container.RegisterTypeForNavigation<MainPage>();
    Container.RegisterTypeForNavigation<DetailPage>();
    Container.RegisterType<ITsApiService, TsApiService>();
}

由于命名約定,我們不需要做任何特別的操作:新頁面和新ViewModel已經連接?,F在我們需要通過ListView控件中所選條目到新頁面。讓我們先看看如何在主頁處理選擇。通過使用由我親愛的朋友Corrado Cavalli創建的庫,我們會得到一些幫助,它允許你在Xamarin Forms應用程序實現行為。可用的行為中的EventToCommand允許我們連接暴露于控件的任何事件與ViewModel中定義的命令。我們要用它來連接ListView 控件的ItemTapped 事件(當用戶點擊列表中的一個項目時會觸發)與我們要在MainPageViewModel中創建來觸發導航到詳細頁面的命令。

你可以從NuGet安裝由Corrado創建的套包,它的名字叫Corcav.Behaviors。使用它你需要添加一個額外的名稱空間到MainPage的root,像下面這個示例:

<ContentPage xmlns="//xamarin.com/schemas/2014/forms"
             xmlns:x="//schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             xmlns:behaviors="clr-namespace:Corcav.Behaviors;assembly=Corcav.Behaviors"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="InfoSeries.Views.MainPage"
             Title="Info Series">
    ...
</ContentPage>

然后你可以申請ListView 控件的行為,就像你在普通Windows應用程序中會做的一樣:

<ListView ItemTemplate="{StaticResource TopSeriesTemplate}"
          ItemsSource="{Binding Path=TopSeries}" RowHeight="200">
  <behaviors:Interaction.Behaviors>
    <behaviors:BehaviorCollection>
      <behaviors:EventToCommand EventName="ItemTapped" Command="{Binding GoToDetailPage}" />
    </behaviors:BehaviorCollection>
  </behaviors:Interaction.Behaviors>
</ListView>

由于這種行為,我們已經連接了ListView 控件的ItemTapped 事件與我們要在ViewModel定義的稱為GoToDetailPage 的命令。從一個框架的角度,Prism沒有做任何不尋常的事幫助開發者實現命令:它只是提供了一個稱為DelegateCommand的類,這允許你定義操作來執行調用命令和可選的條件來啟動命令。如果你有一些MVVM Light以往的經驗,它會以RelayCommand 類那樣完全相同的方式運作。以下是我們的命令在MainPageViewModel 類的樣子:

private DelegateCommand<ItemTappedEventArgs> _goToDetailPage;
public DelegateCommand<ItemTappedEventArgs> GoToDetailPage
{
    get
    {
        if (_goToDetailPage == null)
        {
            _goToDetailPage = new DelegateCommand<ItemTappedEventArgs>(async selected =>
            {
                NavigationParameters param = new NavigationParameters();
                param.Add("show", selected.Item);
                await _navigationService.NavigateAsync("DetailPage", param);
            });
        }
        return _goToDetailPage;
    }
}

我們已經創建了的命令是一個參數化命令;事實上,屬性類型是DelegateCommand< ItemTappedEventArgs >:這種方式,在方法內部,我們獲得存儲在Item 屬性中的選中的條目。命令觸發時調用的方法展示了如何用參數的工作原理導航:首先我們創建一個新的NavigationParameters對象,最后,只不過是一個你可以存儲鍵/值對的字典。因此,我們只需添加一個新項,作為關鍵,關鍵字show ,作為值,選中的項的類型是SerieFollowersVM。這是與我們在App類中看到的導航的唯一的區別:其余的都是一樣的,這意味著我們調用NavigationServicetheNavigateAsync()方法,傳遞標識詳細信息頁面(DetailPage)和參數的關鍵參數。

重要事項!App類中,我們能夠自動使用NavigationService ,因為它繼承自PrismApplication 類。如果我們要在ViewModel中使用NavigationService (像在這種情況下),我們需要使用基于依賴注入(dependency injection)的傳統方法。NavigationService 實例已經在Prism容器注冊,所以我們只需要添加一個INavigationService 參數到MainPageViewModel的公共構造函數:

public MainPageViewModel(TsApiService apiService, INavigationService navigationService)
{
    _apiService = apiService;
    _navigationService = navigationService;
}

既然我們已經完成了導航到詳細頁面,我們就需要檢索DetailPageViewModel 類的參數。第一步,像我們為MainPageViewModel做的那樣,讓它從INavigationAware 接口繼承,除了BindableBase 類。通過這種方式,我們可以訪問OnNavigatedTo()事件:

public class DetailPageViewModel : BindableBase, INavigationAware
{
    private SerieFollowersVM _selectedShow;
    public SerieFollowersVM SelectedShow
    {
        get { return _selectedShow; }
        set { SetProperty(ref _selectedShow, value); }
    }
    public DetailPageViewModel()
    {
    }
    public void OnNavigatedFrom(NavigationParameters parameters)
    {
    }
    public void OnNavigatedTo(NavigationParameters parameters)
    {
        SelectedShow = parameters["show"] as SerieFollowersVM;
    }
}

前面的代碼顯示了如何處理我們從主頁收到的參數:同一個我們通過的MainPageViewModel對象到作為 OnNavigatedTo()方法的參數傳遞的NavigateAsync()方法。因此,我們可以用show 鍵簡單的檢索先前存儲的項。在這種情況下,因為我們預計SerieFollowersVM類型的對象,我們可以執行一個計算并將其存儲到稱為SelectedShow的ViewModel的屬性中。多虧了這個屬性,我們可以利用綁定到選擇顯示的各種信息連接到XAML頁面的空間。以下是DetailPage.xaml的樣子:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="//xamarin.com/schemas/2014/forms"
             xmlns:x="//schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             prism:ViewModelLocator.AutowireViewModel="True"
             Title="{Binding Path=SelectedShow.Name}"
             x:Class="InfoSeries.Views.DetailPage">
  <StackLayout>
    <Image x:Name="InfoPoster"
           Source="{Binding Path=SelectedShow.Images.Fanart}" Aspect="AspectFill" />
    <Label Text="{Binding Path=SelectedShow.Overview}" LineBreakMode="WordWrap" FontSize="13" TextColor="#98a6ad" Margin="15" />
  </StackLayout>
</ContentPage>

內容很簡單:我們顯示show的圖片(存儲在SelectedShow.Images.Fanart屬性)和一段簡要描述(存儲在SelectedShow.Overview屬性)。

結束語

在這篇文章中,我們已經看到在用Prism 作為MVVM框架創建的Xamarin Forms應用程序中處理導航和依賴注入的一些基本概念。在下一篇文章中,我們將看到幾個高級場景,有關導航和特定于平臺的代碼的處理。你能在GitHub存儲庫找到這篇文章使用的示例應用程序(為了方便各位讀者,小編已經為大家整理了,請點擊這里下載)。

本文翻譯自:

 

PS: 關于移動開發,這些產品你可以關注>>
關于移動開發的最新資訊和產品推薦,請<>!

標簽:移動開發導航控件Xamarin

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
主站蜘蛛池模板: 三级片在线观看视频 | 另类极品人妖 | 噜噜噜久久久 | 怡春院久久| 国产精品熟女乱 | 国产精品成人自拍 | 国产日夜| 日韩区在线 | 乱伦色区| 午夜aa| 国产不卡电影 | 日韩美女欧美精品 | 麻豆视频在线播放 | 成人毛片免费 | 成人三级在线播放 | A黄视频 | 日韩在线视频一区国产 | 日韩欧国产精 | 日韩一不卡 | 高清无码毛片 | 国产在线第一页 | 日韩欧美伦理电影 | 国产中文 | 国产中文在线 | 国产经典动画片 | 九九综合色 | 国产欧美精 | 91精品久久久久久 | 日韩精品在线 | 午夜成人操 | 日韩福利导航 | 国产又黄又硬又粗 | 爱豆传媒免费看 | 日韩欧美成综合 | 深爱激情婷婷综合基地 | 加勒比一区 | 国产第三页 | 日本免费www| 午夜福利成人网站 | 操操干干 | 成人欧美图片国产 | 国产精品自拍在线观看 | 激情文学图片小说视频 | 激情文学另类 | 三级在线网站 | 东京热大乱w姦 | 日韩丝袜高跟福利 | 狼友免费视频 | 成人精品国产一区二区 | 91欧美在线视频 | 成人无码毛片 | 成人三级免费观看 | 国产不卡视频在线 | 国产粉嫩 | 国产全肉乱妇杂乱视频 | 三级黄视频在线观看 | 国产又粗又长又爽 | 中文字幕免费毛片 | 国产精品在 | 嫩草91 | 国产成人精品免费 | 性久久久久久 | 免费的A级片 | 日本一级特黄真人做受 | 国产又黄又猛又爽 | 黄色三级视频 | 老湿影院免费在线观看 | 麻花原创mv免费观看 | 激情另类小说图片 | 国产门视频 | 日韩综合第一页 | 成人精品日韩亚洲专区 | 极品美女一线天 | 日韩不卡免费视频 | 69老司机在线播放 | 日韩成视频 | 日韩午夜福利导航 | 91网站免费看 | 在线播放福利 | 亚洲激情小说图片 | 亚洲激情成人 | 变性人妖| 欧美另类综合 | 成人国产视频网站 | 亚洲精品国产精品国产 | 日本三级大片 | 亚洲综合日韩精品国产 | 五月深爱激情网 | 福利姬喷水在线观看 | 成人精品视频在线观看 | 在线播放福利 | 国产做爱在线观看 | 乱欲精品 | 欧美成人视屏在线 | 日韩另类! | 午夜福利在线视频 | 日韩欧美高清一区二区 | 日韩亚洲欧美在线观 | 成人免费的视频 | 国产不卡在线观看 | 婷婷丁香五月综合 | 福利视频网站 | 三级日本乱伦国产 | 玖玖爱www| 日韩在线永久免费播放 | 日韩精品国产一区二区 | 日韩色婷| 成人免费a | 久草福利在线资源站 | 成人a无码| 老色69| 午夜福利影院在线 | 日韩伦理免费看 | 另类人妖视频 | 日韩一区二区三区av | 亚洲成人国产 | 日韩日韩日韩日韩日韩 | 欧美一区视频在线 | 成人福利国产视频 | 午夜福利局 | 久久一色| 午夜激情视频网站 | 国产第3页| 日韩精品在线一区二区 | 日韩高清一二三区 | 日韩欧美综合 | 亚洲另类视频图片小说 | 深夜福利你懂的 | 国产你懂得| 日韩在线免费看网站 | 日韩在线观看影院 | 最新午夜成人福利在线 | 日韩一区在线亚洲 | 深夜性爱福利 | 尤物视频在线观看视频 | 国产午夜视频在线观看 | 成人A级毛片免费看 | 三级AV在线免费观看 | 91久久人人 | 日韩精品午夜视频 | 成人免费伦理视频 | 91卫星地图| 久久视频中文字幕 | 国产福利在线观 | 日韩精品成人视频 | 女同二区 | 久草最新 | 日韩永久免费视频 | 国产尤物视频在线 | 都市激情亚洲欧美 | 精品国产乱码久久久 | 多人强伦轩免费看 | 经典三级在线 | 日韩精品在线视频一区 | 日韩高清国产一区在线 | 亚洲精品电影 | 欧美另类丝袜 | 三级在线看中文字 | 国产精品自拍在线 | 国产ts人妖视频网站 | 天天搞夜夜操 | 久久一区不卡 | 精品国产精品 | 午夜理伦三级做爰电影 | 果冻传媒出品在线观看 | 在线日韩一区 | 国产做爱视频网站18 | 日韩a一级欧美一级 | 国产裸体视频 | 国产精品免费精品一区 | 成人三级在哪里看 | 女同精品| 日韩美女视频在线播放 | 国产成人不卡在线 | 偷拍自拍首页 | 日韩视频―中文字幕 | 在线不卡一区 | 亚洲国产一 | 日韩无码中字 | 成人一区二免费视频 | 国产在线综合色 | 欧美日韩在线不卡 | 天堂网最新在线 | 午夜AV电影| 欧美精品区 | 日韩欧美在线不卡 | 日韩亚洲亚洲视频 | 国产精品自拍网站 | 成人精品国产一区二区 | 天天操综合网 | 日韩精品亚洲精品第一 | 日韩在线一区国产国 | 日韩在线观看一区二区 | 国产黑丝一区 | 国产高潮白浆狂喷 | 午夜黄色福利视频 | 国产精品第页 | 可以看毛片的网址 | 激情文学图片区 | 日韩欧美国产动漫在线 | 日韩超燃电影院免 | 欧美乱伦网站 | 国产91精品一区二 | 五月丁香婷婷综合在线 | 成人精品| 日韩伦理视频 | 97超碰人人艹人人 | 福利区在线观看 | 日韩欧美三级伦理 | 久久网综合网 | 自拍偷拍第十页 | 校园激情综合网 | 国产福利高清在 | 日韩欧美黄 | 日韩一级中文字幕 | 国产大陆亚洲精品 | 午夜无码在线 | 爆乳熟妇一区二区 | 日韩在线一区二区 | 精品免费 | 精品福利在线 | 91丝袜在线视频观看 | 在线免费观看污网站 | 国产a国产 | 午夜伦理在线观看 | 欧美日韩一区二区不卡 | 日韩AV女优在线观看 | 午夜欧美影院0 | 激情图片小说在线视频 | 四房色播激情网 | 婷婷深爱五月 | 不卡网无码 | 日韩国产欧美视频一区 | 亚洲有码在线 | 成人免费观看 | 岛国av免费 | 午夜影院私人 | 日韩免费中 | 99自拍视频在线观看 | 日韩国产一区香蕉区 | 久久综合se | 日韩精品福 | 日韩中文字幕精品在线 | www.日韩一区 | 日韩无码网站 | 午夜在线福利社 | 日韩欧美亚洲三级在线 | 日韩欧美亚洲免费在线 | 91资源网 | 天堂新在线| 这里只有精品久久 | 日韩欧美亚洲国产伊人 | 国产亚洲| 日本不卡字幕 | 国内精品三级 | 日韩A级| 亚洲性受精品国产馆 | 国产精品自拍高清 | 午夜三级伦理 | 国产乱伦中文字幕 | 夜夜嗨一区二区三区 | 精品字幕 | 欧美一区二区高清 | 成人簧片 | 综合久久中文字幕 | 国产www视频 | 91国产精品 | 精品无码一级毛片免费 | 成人无码区免费A片 | 欧美精品偷拍 | 国产aⅴ熟女| 日韩电影在线一区 | 日韩欧美亚洲天堂成人 | 久久精品99 | 精品合集系列在线观看 | 日韩高清不卡在线 | 国产成人久久一区二区 | 日韩天堂在线观看 | 日韩欧美国产自 | 欧美另类专区 | 日韩精品成人亚洲毛 | 日韩欧美在线免费看 | 福利小导航| 日本激情网站 | 精品处破女学生 | 偷拍自拍在线视频 | 韩日精品一二三 | 精品一区二区三区三区 | 国产七区 | 91社在线| 国产专区在线 | 三级综合精品乱伦 | 学生妹网站| 国产在线女主播 | 爱丝袜国产| 欧美成人视频网站 | 国产91网址在线播放 | 深夜免费福利网站 | 四虎私人影院 | 日韩精品欧美专区 | 国产乱人视频免费观看 | 玖玖视频网 | 日韩欧美在线观看免费 | 亚洲国产成人综合色 | 日韩美女一区 | 日韩视频欧美在线 | 国模吧一区二 | 男人的天堂在线 | 久久影院中文字幕 | 97超碰超碰| 果冻传媒出品在线观看 | 国产70老熟女重口 | 日韩视频在线播放 | 日韩国产欧美 | 麻豆网站 | 欧美91视频 | 日韩另类人妖 | 午夜在线视频 | 日韩国产另类激情图区 | 欧美性爱网站免费 | 国产又粗又猛又黄视频 | 国产h片在线 | 精品中文字幕在线 | julia在线视频 | 日韩国产综合精选 | 正在播放麻豆 | 天天天天干 | 欧美精品宗合 | 久久不射网站 | 狠狠操夜夜操天天操 | 欧美成人性爱视频 | 国产精品成人自拍 | 天堂在线资源网 | 日韩精品欧美一区二区 | 男人天堂网2025 | 日韩一区二区三区四区 | 成人动漫免费视频 | 国产a级片| 日韩精选视频 | 日韩视频一区二区 | 尤物在线精品 | 日韩午夜激情 | 亚洲学生妹高清AV | 日韩亚洲欧洲中文版 | 国产精彩视频 | 久久资源综合网 | 丰满少妇一区二区 | 午夜福利成人 | 国产黑丝在线 | 午夜视频在线 | 成人亚洲欧美日韩在线 | 国产激情文学 | 日韩国产欧美精品在线 | 日本AV中文字幕 | 偷拍自拍在线视频看看 | 日韩视频在线观看 | 日韩欧美另类 | 91丝袜在线 | 欧美性爱欧美性爱 | 日韩中文字幕精品在线 | 国产最新精品2025 | 成人午夜视频福利 | 国产福利电影在 | 日韩视频二区三区 | 尤物精品| 国产日韩欧美 | 自拍网中文字幕 | 黄色av网| 午夜伦理伦理片 | 日韩一区精品 | 日韩喷水视频 | 午夜免费在线 | 免费成人a黄 | 九一国产| 中国无码 | 午夜ab| 日韩中文字幕有码 | 成人日韩电影 | 成人韩漫画| 黄色网址在线看 | 日本wwwww色高 | 久久午夜国产精品 | 国产第一页草草 | 国产看片资源 | 日韩一区高清在线观看 | 夜操在线视频 | 成人免费视频播放 | 国产精品男女 | 成人午夜网址 | 中文久久网 | 日韩a级影院 | 日韩国产欧美亚洲一区 | 国产无码三级 | 丁香婷婷五月综合 | 成人国产不卡 | 欧美成人在线视频观看 | 午夜婷婷| 玖玖爱在线免费视频 | 午夜男女 | 老湿影院在线观看 | 性爱自拍第一区 | 国产自产第 | 国产永久免费无 | 视频一区二区视频 | 日韩中文字幕精品一区 | 夜色福利导航 | 欧美日韩精品一区 | 日韩三级片网址 | 三级片在线免费观看 | 激情熟妇 | 日韩一区二区三区激情 | 日韩欧美在线网址 | 国产专区在线 | 久久月本道色综合久久 | 日韩久久久精品 | 极品福利导航 | 性欧美人妖 | 国产黄色毛片 | 欧美视一区 | 欧美ab | 日韩去日本高清在线 | 日韩亚洲视频 | 国产免费三级片完整版 | 福利姬在线观看免费 | 国产乱人伦 | 日韩丝袜性爱在线观看 | 九一果冻制作厂余丽 | 欧美乱伦精品 | 日韩午夜在线观看 | 这里只有精品66 | 三级视频网站 | 日韩视频无码专区二三 | 国产传媒在线观看 | 激情小说在线视频 | 国产三级电影网 | 国产伦理精品在线 | 亚洲三级网址 | 国产免费美女视频 | 97人人干 | 成人免费片 | 三级黄色的视频 | 中文字幕天津午夜精品 | 微拍一区| 国模冰莲私拍极品肥美 | 午夜成人在线免费观看 | 日日干日日 | 麻豆网站 | 丁香五月婷婷综合 | 日韩国产精品影院 | 华人超碰| 夜操在线视频 | 夜操在线视频 | 三级片网站大全 | 思思久热 | 国产精品一二 | 国产精品2 | 日韩高清不卡在线 | 国产精品第十页 | 97超碰人人摸人人操 | 91视频抖音| 日韩av一卡二卡 | 亚洲A级 | 五月丁香五月 | 国产久热香蕉在 | 日韩影视在线观看 | 成人免费网站 | 日韩成人精品 | 国产a级毛多妇女视频 | 欧美日韩首页 | 三级在线免费看 | 91爱啪| 日韩AV高清 | 日韩欧美精品在线观看 | 日韩在线视频第一页 | 超碰人人干 | 亚洲av地址 | 日韩一级性生活片 | 日韩亚洲欧美中文高清 | 日韩变态网 | 日韩精品国产自在欧美 | 国产乱伦网| 性爱在线观看网站 | 日韩影片中文字幕 | 亚洲国产精品色色 | 国自产偷拍精品 | 午夜在线插 | 日韩精品福| 国产成人国产三级 | 日日夜夜干 | 成人精品网站 | 天堂网在线视频观看 | 国产地址 | 深夜电影免费在线看 | 成人午夜在线观看国产 | av狠狠操 | 东京热成人在线 | 综合网中文字幕 | 日日夜夜狠狠操 | 97超碰网| 91刺激 | 中文字幕人妻丝袜 | 高潮流白浆在线观看 | 日韩一区二区免费看 | 国产又黄又粗又猛又爽 | 国产精品激情综合 | 国产不卡高清 | 天天插夜夜爽 | 91自拍视频网 | 日韩精品资源 | 午夜福利免费 | 海角亂倫精品一区二区 | 精品国产国产 | 晚上福利视频 | 日韩成人深夜在 | 91av免费观看| 精品人妻中文字幕 | 午夜福利视频导航 | 成人亚洲网站www在 成人亚洲天堂 | 人人操人人干超碰 | 精品动漫一区二区三区 | 成人免费黄色A片 | 91网址在线| 日韩一区二区专区 | 国产精品HD | 成人综合小说图片 | 日韩影音 | 韩国学生妹av | 色五月综合网 | 午夜国产片 | 国产一曲二曲 | 日韩中文字幕网先锋资 | 日韩国产欧美视频 | 精品自拍网 | 国产在线一区二区 | 日韩女同互慰一区二区 | 日韩福利片免费视频 | 天天狠狠干 | 国产少萝视频麻豆 | 自拍偷拍第八页 | 91视频污污污 | 午夜成人无码视频 | 国产精品自拍观看 | 成人一级午夜激情网 | 综合网中文字幕 | 精品人妻中文字幕 | 日韩在线视频一区国产 | 天堂新在线 | 日韩欧美巨乳 | 日韩在线视频在线观看 | 日韩成人av影视 | A片三级三级三级网站 | 国产情侣亚洲 | 日韩欧美二 | 韩国无码无遮挡 | 日韩福利小视频 | 97欧美在线| 三级A片黄色 | 日韩欧美国产一区三 | 日韩高清片一二区 | 成人无码做爰毛片国产 | 自拍偷拍首页 | 国产www视频 | 日韩在线精品一二三区 | 毛片A片免费| 成人深夜精品 | 国产传媒伦理片 | 新天堂资源网站 | 亚洲国产综合AV在线 | 无码电影院 | 簧片在线 | 午夜在线电影网 | 在线黄片com | 午夜男女网站 | 日韩精品一区五区九区 | 国产三级精品 | 成人黄瓜视频 | 国产屁屁影院 | 成人A级片免费 | 日韩一二三区免费视频 | 国产精品性爱在线观看 | 五月婷婷网 | 成人污污| 亚洲色悠悠 | 终合激情网 | 天天日天天操天天干 | 色情性黄片免费视频 | 国产又爽又黄免费软件 | 深夜福利你懂的 | 激情小说综合 | 超碰入口 | 国产乱理伦片 | 国产全部理论 | 国产精品白丝 | 成人快手下载 | 国产精品午夜视频 | A片视频网址 | 日本成人网址 | 超碰成人97 | 亚洲精品国产福利 | 欧美日韩精品一区二区 | 国产高清视频在线 | 日韩无砖专区体验区 | 成人免费男女视频网 | 国产无码a| 成人国产精品秘 | 福利小视频在线播放 | 日韩免费成人网站 | 亚洲一卡二卡三卡在线 | 羞羞网站 | 私拍在线| 日韩国品一 | 婷婷深爱激情网 | 三级视屏 | 午夜鲁丝片| 日韩午夜伦理片 | 午夜成人福利初夜 | 日韩系列 | 色窝窝在线视频 | 国产AV| 这里只有精品999 | 亚洲国产成人在线视频 | 成人午夜小视频 | 玖玖在线看 | 美女国产 | 91黑丝后入 | 亚洲国产成人精 | 三级午夜理伦三级 | 激情图片小说网 | 四虎新地址 | 国产精选第一页 | 国产人成亚 | 国产污视频 | 午夜操一操 | 日日夜夜天天综合网 | 日韩一区二区三 | 91在线观看免费高清 | 东京热无码视频 | 三级精品视频 | 韩日精品一区 | 三级片网站视频 | 国产第一页第二页 | 日韩精品人妻一区二区 | 欧美天天 | 日韩在线播放欧美字幕 | 三级网站黄色 | 日本天堂中文字幕 | 国产农村成人精品一区 | 性爱在线观看网站 | 三级一区二区 | 国产三级片视频网站 | 欧美日韩最新网址 | 成人高清免费国产网站 | 欧美三区在线 | 日韩精品免费在线视频 | 午夜剧场伦理 | 日韩欧美国产高清 | 97超碰在线免费观看 | 日韩在线导航 | 日韩最新网站 | 日韩无码丝袜 | 男人天堂影院 | 久久道本一综合苹果 | 国产自愉 | 深夜福利无码 | 91视频原创| 国产三级精品三级在线 | 日韩中文在线播放 | 国产一区视频在线播放 | 日本乱伦三级片 | 综合久久一 | 天天干天天干天天干 | 成人看片网站 | 成人福利在线观看免费 | 国产又黄又粗又硬 | 国产午夜视频在 | 91操人| 偷拍自拍在线视频看看 | 强奸乱伦首页 | 秋霞午夜伦理 | 国产午夜一区 | 蜜桃麻豆 | 成人午夜免费福利 | 深爱激情婷婷综合基地 | 午夜视频免费版 | 最新福利视频导航 | 日韩伦理三级 | 国产又爽又黄免费视频 | 国产精品v欧美 | 国产91精品 | 无码不卡网 | 午夜三级黄 | 日韩国产欧美视频 | 爆乳无码一区二区三区 | 成人午夜免费影院 | 免费一级毛片中文 | 成人无码三级在线观看 | 成人快手app | 日韩欧美一区二区在 | 成人a级| 一区二区传媒 | 超碰97人人草| 亚洲无码无卡 | 狼人一区 | 爱丝袜国产 | 日韩一三区国产福利 | 欧美视频在线观看一区 | 亚洲色片在线观看 | 日韩欧美在线一区 | 毛片的网址 | 无码孕妇一区二区三区 | 三级网站观看 | 国产大片直接免费观看 | 国产免费一区二区三区 | 成人免费A片白浆 | 国产乱伦大全 | 三级伦理日韩在线观看 | 国产刺激真实乱对白 | 欧美浓毛大泬视频 | 东京热HEYZO无码 | 丁香五月天导航 | 簧片免费看 | 97人人看| 亚洲深夜福利视频 | 天天摸天天干 | 免费黃色三級片在线 | 日韩一区二区免费视频 | 久草福利资源站 | 成人免费黄色A片 | 中文字幕国产第一页 | 国产免费高清无码a级 | 欧美另类影院 | 中国免费三级片 | 国产伦理自拍 | 午夜精品无码 | 亚洲男人影院 | 日韩色色图 | 成人韩漫画 | 久热青草 | 成人a视频 | 激情小说图区 | 日韩中文字码无砖 | 日韩最新国产精品网站 | 国产中文字幕 | 福利影院在线看 | 成人高清在线观看播放 | 国产中字 | 国产精品自拍一区 | 日韩美女在线播放 | 岛国电影网 | 国产盗摄a视 | 国产精品美脚玉 | 久久国产精品张津瑜 | 国产在线一 | 日韩高清三级 | 美女内射视频网站 | 91在线。| 亚洲深夜 | 91舔操| 在线观看亚洲国产精品 | 任我操在线视频 | 三及网站 | 日韩精品欧美一区 | 密桃性爱视频第一页 | 日韩v码视频 | 中国午夜精品 | 国产精品女主播 | 国产精品三级视频 | 日韩欧美电影网 | 日韩理论在线视频 | 自拍视频99| 激情图片小说在线视频 | 日韩性爱在线视频 | 日韩精品激情综合 | 老熟女在线播放 | 国产真实乱子伦视频 | 亚洲三级伦理 | 国产成色在线 | 久久国产精品人妻aⅴ | 日韩高清一区 | 国产麻豆免费 | 午夜成人免费视频 | 福利视频导航网站 | 都市激情国产 | 91视频高清 | 这里有精| 性久久影院 | 黄色av网站免费观看 | 午夜不卡在线观看 | 四房激情网 | 四川丰满少妇A级无码 | 女主播在线观看 | 日韩在线视频免费播放 | 日韩国品一 | 玖玖福利 | 91在线视 | 日韩成人一区 | 成人午夜婬片100集 成人午夜亚洲精品无 | 久草smc| 国产性爱精品在线观看 | 在线一区二区免费 | 自拍偷拍第1页 | 午夜在线视频0 | 成人午夜试看 | 午夜伦理剧 | 午夜免费| 日韩午夜在线观看 | 激情图片小说网站 | 三级av网站 | 国产真实 | 五月婷婷色因 | 日韩在线观看欧美尤物 | 91香蕉视频网 | 欧美国产日韩在线观看 | 狼友福利在线观看 | 欧美性网址 | 成人午夜影片在线观看 | 天天狠狠 | 午夜在线看 | 尤物视频免费观看 | 成人免费A片白浆 | 国产精品水多 | 国产精品自拍网站 | 熟女毛片 | 91福利社| 亚洲国产精品成人AV | 夜夜干,夜夜操 | 色窝窝在线视频 | 成人午夜视频在线视频 | 国产精品秘麻豆免费版 | 能看的黄色网 | 国产91网站在线 | 日韩精品秘在线观看 | 激情图片小说在线视频 | 亚洲人成www | 国产精品福利姬 | 国产成年人视频 | 强奸乱伦免费看 | 在线不卡人妖 | 无码午夜影院 | 丁香五月天婷婷综合 | 日韩激情视频 | 日韩国产精品欧美 | 欧美另类综合网 | 日韩免费一级 | 国产精品被艹 | 三级毛片在线播放 | 三级片国产在线看 | 亚洲精品网站无码av | 成人免费三及片 | 欧美多人性爱视频 | 亚洲午夜福利 | 国产久久| 国产拍在线 | 天天操天天日天天干 | 中文在线一区 | 福利姬视频免费看 | 视频一区二区三区在线 | 日韩国产变态另类欧美 | 国产99久9在线视频 国产99久9在线 | 日韩激情综合网 | 欧美成年人网站 | 中文一级毛片HD网站 | 国产精品性欲久久 | 国产激情 | 久久中国 | 国产精品久久久久不卡 | 福利姬免费视频 | 玖玖爱在线视频观看 | 日韩欧洲a∨天码专区 | 成人无码免费毛片 | 日韩精品在线观看视频 | 国产性爱免费观看 | 国产视频久久久 | 精品偷拍自拍视频 | 日韩在线视频观看 | 性作久久久 | 欧美在线一区二区不卡 | 日韩视频中 | 国产极品一区二区 | 日韩无码电影 | 天天操夜夜爽 | 国产探花在线看 | 97下载网 | 囯产永久福利人人看 | 一级毛片中文字幕 | 欧美性网址 | 欧美成人视频在线观看 | 中国操逼图 | 高潮久久久久久久不卡 | 国产同事露脸 | 日韩免费高清 | 国产视频第三页 | 成人免费精品一二三区 | 日韩亚洲精品在线观看 | 玖玖综合爱 | 日韩欧美高清视频 | 97视频在线伦 | 国产在线资源站 | 福利姬在线看 | 第一福利网站 | 超碰91人人| 成人国产欧美在线 | 中文字幕-色哟哟 | 人人妻日本 | 国产精品成人大全 | 日韩人成| 日韩淫片在线 | 日韩精品电影在线观看 | 免费a级毛片| 女主播在线视频 | 天堂网视频在线观看 | 日韩视频免费在线观看 | 国产午夜视频在线观看 | 精品性爱在线 | 三级经典第一页 | 人人摸人人操人人干 | 国产尤物视频在线观看 | 国产精品一品 | 日韩伦欲片 | 国产a级国片免费播放 | 极品精品 | 日韩欧美另类视 | 玖玖玖玖在线 | 国产白丝喷 | 玖玖视频免费在线观看 | 日韩欧美国产第二区 | 日韩中文影院 | 日韩中文有码 | 日本伊人网 | 三级在线观看视频a毛 | 真实国产亂伦视频 | 午夜亚洲电影0 | 国产美乳| 国产丝袜福利 | a级视频在线观看 | 日韩福利小视频 | 日韩精品电影在线观看 | 玖玖爱国产在线 | 午夜成人福利视频在线 | 中国三级片国产网站 | 高清无码免费 | 日韩在线视频观看 | 深夜福利视频在线 | 国产美女视频网站 | 尤物在线网址 | 亚洲另类视频图片小说 | 另类欧美日韩 | 日韩专区国产在线 | 中文字幕第一页国产 | 国产乱妇乱 | 亚洲亚洲人成综合网络 | 日韩淫秽视频 | 成人无码一区二区三区 | 日韩中文字幕精品在线 | 中文有码在线 | 91最新网址 | 日韩在线成人免费视频 | 91影视下载| 成人高清免费国产网站 | 欧美三区视频 | 福利久草 | 天堂资源在线观看 | 国产无码李宗瑞 | 国产精品亚洲无码 | 精品一区二区三区三区 | 五月丁婷婷 | 婷婷激情综合 | 国产99久一区二 | 日韩淫网 | 97精品在线 | 三级全黄视频 | 欧美另类自拍 | 日韩在线va中文字幕 | 国产乱人妻精品秘入口 | 亚洲国产日韩高清 | 日韩精品亚 | 激情文学综合 | 91一区精品 | 日韩精品三区 | 日韩网站在线观看 | 五月丁香六月婷婷综合 | 免费一级A毛片夜夜看 | 图片区视频区小说区 | 日韩国产在线观看一 | 五月丁香六月 | 成人无码免费毛片 | 国产亚洲精品成人 | 国产精品丰满人妻G奶 | 国产成人精品自拍 | 中文字幕免费毛片 | 97超碰人人操人人干 | 肥肉熟妇一区二区三区 | 欧美另类专区 | 日韩乱伦一区二区 | 日本中文字幕有码 | 人人干人人摸 | 日韩欧美h | 日韩高清在线免费看 | 怡红院一区二区三区 | 日韩乱伦一区二区 | 91视频污| 成人三级片在线 | 五月婷婷五月丁香 | 国产刺激对白国产情侣 | 日韩免费伦理 | 亚洲国产精品va | 日韩欧美亚洲免费 | 成人午夜在线免费观看 | 在线激情视频小说 | 综合久久99| 成人免看一级a一片 | 91制片国产自 | 国产情侣酒店自拍视频 | 日韩欧美三级在线 | 国产精精| 黄片一级在线观看 | 狗爷城中村嫖妓视频 | 国产拗女一区二区三区 | 日本中文字幕α片 | 国产成人精品三级麻豆 | 91巨炮在线 | 日韩欧美一区免费极品 | 日韩中文字幕在线不卡 | 国产精品日本 | 91视频a| 成人午夜小视频免费 | 国产a天天免费观看 | 日韩经典 中文字幕 | 日韩欧美电影在线 | 黄色三在线 | 成人午夜福利专区 | 成人无码A级 | 日韩性爱视频 | 国产伦精品 | 国产精品福利在线 | 日屄小视频 | 午夜视频免费 | 日韩欧美视频免费看 | 日韩老熟| 日日干日日爽 | 狠狠干婷婷 | 日韩和的一区二在线 | 国产原创精品视频 | 激情小说亚洲图片:伦 | 国产欧美| 激情文学第一页 | 中文字幕国产第一页 | 国产三级播放 | 成人午夜免费在线 | 国产按头暴力深喉口爆 | 欧美成人在线网站 | 日韩激情电影 | 成人午夜短视频播放 | 午夜爽爽爽 | 豆花av在线 | 国产男女交配 | 国产一级片 | 欧美极品一区二区三区 | 91在线不卡 | 日日夜夜天天综合网 | 国产ts上海在线观看 | 激情文学第一页 | 国产色情一区二区三区 | 国产精品www.| 精品动漫一区二区 | 玖玖精品电影 | 日韩另类在线 | 成人污污污在线观 | 97超碰人人艹人人 | 午夜三级在线 | 国产黄色片 | 午夜影院老线观 | 午夜精品网影院 | 国产人妖精品视频 | 日韩精品欧美专区 | 玖草在线视频观看 | 视频一区二区在线 | 自拍偷拍99 | 日韩免费不卡 | 日韩中文午夜伦理片 | 日韩电影伦理 | 成人国产在线一区二区 | 日韩精品亚洲aⅴ在线 | 在线成人三级片 | 欧美另类z0z | 日韩人成 | 日韩亚洲小说卡 | 午夜影视国产 | 国产自拍偷拍网 | 人人爱人人操 | 成人免费AAA片 | 网友自拍第一页 | 人人草人| 日韩一区二区AⅤ | 尤物视频网在线观看 | 午夜男女爽 | 亚洲福利| 成人午夜无码视频 | 日韩一区二精品成人免 | 国产91精品秘入口 | 深夜福利在线播放 | 成人午夜激情 | 日韩成人免费在线 | 成人性爱在线视频 | 国产成人在线不卡 | 欧美精品一区视频 | 国产理论片 | 综合久久网| 国产91司机在线观看 | 激情综合文学 | 自拍偷拍第38页 | 日韩经典午 | 黄色网址免费看 | 在线观看第一页 | 黄色3级网站毛片 | 国产精品自产拍在线 | 日韩精品在线视频观看 | 尤物视频免费观看 | 成人无码区免费AⅤ片 | 成人高清在线观看免费 | 成人小说在线视频 | 日韩免费福利影院 | 福利导航在线观看视频 | 日韩成人伦理片 | 日韩xxxxx级 日韩www视频 | 日韩视频在线免费 | 日韩中文字幕高清一区 | 蜜桃福利导航 | 欧美精品一区二区在线 | 日韩亚射 | 中文字幕日本网站 | 成人精品国产一区二区 | 最新精品国偷自产在线 | 欧美福利影院 | 免费的A级片 | 丰满少妇户外野外啪 | 日韩极品视频 | 日本丰满少妇做爰爽爽 | 国产免费一区 | 午夜成人性视频 | 久久99国| 日韩激情综合在线区 | 午夜成人黄色电影 | 国产乱伦区 | 日韩亚洲一分钟 | 无码国产高清 | 狼狠狠干 | 极品一区 | 日韩中文字幕欧美亚洲 | 日韩国产综合 | 日韩激情无遮掩视频 | 日韩性生活视频 | 看毛片的网站 | 国产精品宾馆精品酒店 | 日韩逼网| 深夜成人网站在线观看 | 成人视频午夜 | 午夜伦理 | www.91| 国产狼友视频在线观看 | 日韩家庭乱伦视频网 | 狼狠狠干 | 日本αV中文字幕 | 福利姬在线观看视频 | 欧美日韩在线免费观看 | 亚洲熟女视频 | 丝袜美臀在线观看 | 日韩欧美亚洲每 | 91在线视| 国产精品久久久久野外 | 日韩电影亚洲 | 日韩亚洲一区中文字幕 | 天天日夜夜操狠狠干 | 偷拍自拍在线视频看看 | 国产大学| 国产性爱网站 | 午夜成人福利院 | 韩国三级片久久 | 岛国大片在线一 | 国产初高中小泬视频 | 天天综合网7799 | 97人人插| 国产精品香蕉 | 日韩亚洲欧美专区 | 日韩中文字幕不卡 | 日韩国产三区 | 无码爆乳一区二区三区 | 日韩老司机免费午夜 | 又黄又爽又刺激的视频 | 成人aaaa | 日韩亚洲欧美综合 | 国产尤物在线观看 | 亚洲精选在线 | 国产9999免费视频 | 日韩精品片 | 一区二区免费视频 | 日韩在线视频一区国产 | 日本中文无码字幕 | 91草莓视频| 国产高潮久久 | 日日夜夜狠狠 | 国产乱视频 | 双飞在线| www.xxxx日本| 国产论理片 | 日韩在线中文字幕 | 丁香五月色 | 天天干天天日天天操 | 国产精品日本 | 国产成在线 | 真人性久久久 | 国产主播喷 | 国模吧在线| 岛国午夜视频 | 成人黄疸图片 | 亚洲清色 | 免费国产三级片 | 日韩免费在线播放 | 成人日韩欧美在线 | 日韩在线精品视频99 | 国产性交在线 | 日韩综合国产中文字幕 | 加勒比性爱视频 | 日韩综合在线欧美 | 主播一区 | 日韩欧美亚洲一区 | 97中文字幕 | 强奸乱伦视频网址 | 日韩国产欧美综合在线 | 日韩欧美福利在线 | 玖草视频在线 | 91神马影城| 国产精品嫖妓播放在线 | 成人做爰黄片免费 | 97超碰人人艹人人 | 日韩杏导航 | 午夜性福利| 福利姬视频免费观看 | 91视频下| 国产乱码精品一品二品 | 天堂网毛片视频 | 国产青青草原 | 福利视频网导航 | 欧美另类女同 | 在线天堂最新版资源 | 三级视频看看 | 午夜乱论| 婷婷丁香五月社区亚洲 | 久久这里是精品 | 看毛片的网站 | 日韩精美视频 | 国产乱仑视频 | 成人性爱视频在线观看 | 狠狠撸在线视频 | 三级日本乱伦国产 | 精品人妇一区二区三区 | 天堂资源 | 91大屁 | 欧美性爱极品 | 国产精选av | 中文乱伦字幕 | 色哟哟中文字幕 | 日韩国产欧美亚洲v片 | 国产a高清| 浓毛熟女X66AV | 国产第21页 | 福利精品视频视频 | 午夜手机视频 | 日韩精品一区二区av | 午夜成人黄色电影 | 日韩成人免费精品视频 | 天天综合色 | 日韩综合第一页 | 三级AV网| 成人免费视频008 | 国产AV午夜| 欧美一区二区在线视频 | 国产大片 | 日韩风间由 | 国产精品高颜值 | 成人福利影视在线观看 | 日本无码一区二区三三 | 日本中文影院 | 免费毛片a | 国产白丝袜 | 欧美综合色 | 97在线视频免费观看 | 午夜性影院 | 日韩欧美福利视 | 在线观看三级网址 | 99国精品| 国产淫伦久久久久久久 | 成人午夜高清 | 日韩精品免费一级视频 | 日韩在线欧美精品 | 亚洲精品高清国产 | 成人导航在线观看 | 日韩在线观看一区二 | 成人A片免费网 | 国产精品永久成人免费 | 国产青草 | 国产三级三级看三 | 日韩不卡中文字幕 | 成人性爱在线网站 | 国产福利小视 | 尤物视频网 | 亚洲福利 | 成人三级的片在线播放 | 不卡av在线观看 | 日韩理论片 | 黄色成人免费观看 | 日韩永不卡 | 91视频网在线| 国产丝袜在线观 | 人妖专区| 玖玖爱精品视频 | 91小鸟酱| 国产特黄特 | 97超碰97超碰 | 日韩一区无码 | 日韩美女电影 | 午夜私人福利 | 亚洲国产黄色 | 国产h在线 | 日韩在线播放一区 | 玖玖爱在线视频观看 | 91自拍区 | 日韩国产| 亚洲精品区 | 福利姬液液酱喷水 | 人人插人人插 | 自由偷拍综合 | 97影视下载| 韩日视频在线 | 四房婷婷播激情 | 亚洲精品爆乳无码A片 | 成人日B视频 | 狠狠操天天日 | 亚洲日韩精品国产 | 成人性爱在线视频 | 日韩欧美亚洲国产一区 | 国产精品wwww | 成人一级免费激情网 | 成人国产精品秘入口 | 三级片免费看国产 | 成人福利视| 中文字幕六区 | 国产96在线视频播放 | 欧美V亚洲 | 都市激情国产 | 亚洲国产无码在线 | 玖玖免费在线视频 | 亚洲成人电影免费在线 | 日韩亚洲一区图 | 日韩美女欧美精品 | 老司机午夜影院 | 欧美性网站 | 成人激情综合网 | 成人无码A级毛片 | 午夜福利播放 | 91香蕉导航 | 岛国大片在线播放免费 | 正在播放夫妇露脸自拍 | 岛国大片免费在线观 | 日韩免费在线视频 | 午夜aa| 国产传媒在线观看 | 午夜免费网站 | 午夜婷婷网 | 国产色情视频在线观看 | 国产乱伦一区二区三区 | 日韩国产免费一级 | 国产电影三级在线观看 | 欧美成年网站 | 天美mv播放 | 日韩精品视频免费观看 | 日韩精品视烦兔费网址 | 久久中文综合 | 老湿影院免费 | 天天日天天干天天射 | 91直播最新版 | 日韩欧美色图 | 日日干狠狠干 | 成人国产| 欧美福利影院 | 91视频污下载 | 国产精品乱视频 | 成人a区在线观看 | 日韩专区国产在线 | 91资源 | 国产美女精品一区 | 欧美精品涩涩瑟瑟 | 中文字幕av一区二区 | 成人免费视频视 | 男人看的黄色小视频 | 美女爱爱网 | 国产成人a亚洲AV | 色哟哟中文字幕 | 日韩成人深夜在 | 无码麻豆 | 日韩亚洲中文 | 久久这里只精品 | 日韩伦理片在线 | 国产宾馆在线观看 | 豆花一区二区 | 日韩精品亚洲电影天堂 | 国产精品久久久久野外 | 国产亚洲| 三级网站免费看 | 五月丁香综合 | 超碰人人操人人操 | 免费a级毛片| 亚洲国产激情 | 亚洲激情综合文学 | 探花精品 | 日韩欧美在线图片精品 | 午夜在线电影网 | 91香蕉亚| 免费A级| 尤物视频网站 | 午夜精品福利在线 | 日韩精品专区线上观看 | 日韩永久不 | 国产小伙嫖妓流出播放 | 精品乱码一区二区三区 | 日韩在线播放欧美字幕 | 国产三级片在线观 | 国产粗话肉麻对白在线 | 三级视品 | 亚洲精品呻吟白浆 | 老女人网址 | 最新精品国偷自产在线 | 日韩精品aⅴ免费观看 | 无码不卡免费在线观看 | 伊人狼人干 | 成人日韩精品 | 日韩精美视频 | 福利姬视频导航 | 免费A片地址 | 日韩在线视频在线观看 | 91自拍夫妻 | 麻豆成人免费网站入口 | 日韩欧美中文字幕涩涩 | 国产92视频在线播放 | 精品人妖资源百度 | 91视频区| 国产美女免费观看 | 资源天堂在线 | 日韩另类第一页 | 日韩淫秽视频 | 日韩理论片在线观看 | 在线免费视频一区二区 | 日韩欧美国产另类自拍 | 日韩系列| 91中文| 国模吧一区二 | 精品国产成人 | 日韩簧片在线观看 | 日韩一区在线免费观看 | 国产tp探| 欧美欧美欧美 | 国产ts视频0 | 二区在线视频 | 99自拍偷拍网 | 97久久国产 | 少妇高潮喷水溜白A片 | 四虎影视精品 | 偷拍自拍网站 | 成人免费黄色片 | 在线麻豆| 国产人人看 | 国产免费一区二区 | 欧美一区二区三区不卡 | 人妖另类专区 | 日韩久精品一区二 | 国产视频成人 | 国产AV剧情 | 三级免费成人 | 午夜在线福利社 | 日韩欧美亚洲三级在线 | 日韩无码第一页 | 日韩欧美不卡 | 午夜成人无码精品福利 | 日韩亚洲精品在线播放 | 国产宾馆在线观看 | 欧美视频色 | 国产片网站 | 成人性欧美 | 成人女同在线观看 | 在线播放一区 | 萌白酱福利视频 | 偷拍自拍区 | 午夜精品成人福利 | 人人操人人搞 | 国产三级片在线视频 | 日韩不卡在线播放 | 国产三级片视频网站 | 九九热九九 | 91精品久久久久久 | 国产一区二区三区传煤 | 成人午夜视频免费看 | 日韩成人精品在线观看 | 一夜七次郎首页视频 | www.日本色 | 91自拍福利| 欧美精三区欧美精三区 | 超碰97观看 | 99ri视频| 日韩a级特黄大片 | 三级视频兔费看 | 国产精品成人三级 | 国产一区二区久久久 | 日本精品中文字慕 | 成人一级电影视频 | 自拍偷拍综合 | 日韩无码高清一区 | 91视频区| 人人操夜夜操 | 成人无码大片在线观看 | 激情99| 午夜激情网 | 成人国产中文欧美 | 国产做爱在线 | 日韩新片e网| 国产大伊香蕉精品视频 | 三级一区二区三区 | 福利在线观看 | 日本三级片东京热 | 午夜国产视频 | 国产99热精品 | 日韩中文字幕精 | 久久中文骚妇射 | 东京热在线网站 | 午夜成人精品在线 | 日韩国产v片一区二区 | 91香蕉破解 | 五月丁婷婷| 国产又黄又硬又粗 | 午夜不卡在线 | 成人国产视频一区二区 | 激情图片另类小说 | 国产a级免费视频 | 国产亚洲色情 | 欧美在线成人网站 | 东京无码 | 国产成在线观看免 | 激情五月婷婷 | 97免费看| 日韩成年视频 | 日本日逼网| 成人精品一区在 | 图片区激情文学 | 日韩中文三级 | 福利91精品| 日韩日韩日韩日韩日韩 | 综合五月激情 | 日本一本高清 | 丰满少妇无码 | 99久热| 日韩成片 | 老湿机在线看 | 成人在线三级 | 午夜成人影院在线 | 精品伦子一二三区 | 国模吧一区二 | 国产精品日本无码 | 91传媒官方一区 | 自偷拍精品 | 国产小视频在线观看 | 国产午夜无码精品 | 日韩影院| 国产久久一区二区 | 国产福利在线播放 | 国产成人无码视频 | 国产一区在线视频 | 久久机这里只有精品 | 国产欧美双马尾后入 | 自拍在线观看 | 欧美综合国产 | www.日韩一区 | 日韩伦理视频 | 成人免费看一级A片 | 午夜啪视频 | 老熟女国产 | 午夜极品 | 91岛国| 日本成人久久 | 亚洲有码中文字幕 | 深夜被窝福利 | 秋霞日韩 | 成熟的国模冰莲[2] 成人做爰黄片免费看 | 激情国产在线 | 丨97丨另类丰满人妖 | 国产精品国产18 | 麻豆专区 | 久久九九国产 | 福利姬视频 | 国产精诚人品 | 麻豆蜜桃精品无码视频 | 国产一区视频在线播放 | 亚洲国产日韩在线 | 国产91福利在线精 | 日韩亚洲高清中文字幕 | 国产精品三级片免费看 | 日干夜夜操 | 97超碰射射射 | 激情图区 | 日韩一区二区三区四区 | 69免费福利视频 | 91在线精品 | 免费看无码成人A片 | 三级精品在线 | 成人性生交片 | 日韩另类福利影院 | 熟女伦乱 | 成人免费看三级片 | 激情二区 | 国产视频亚洲 | 午夜精品白在线观看 | 丰满熟妇大乳丰满做爰 | 日韩精品影院 | 国产精品成人无码专区 | av无码一区| 日韩精品一区二区三区 | 日韩中文字幕在线视频 | 岛国毛片 | 狼人伊人干 | 日韩免费观看 | 四虎私人影院 | 玖玖精品电影网 | 国产伦理在线 | 日韩欧美性爱网站 | 成人三级在线看 | 国产亚洲系列 | 国产视频第三页 | 成人福利视 | 日韩无码二区三区 | 福利视频在线导航 | 日韩欧美国产师生制服 |