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

OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用

系統(tǒng) OpenHarmony
最近在看社區(qū)提供的app_samples?,其中有一個(gè)線性容器 ArrayList,看我后讓我想起Android中Scroll與ListView嵌套使用時(shí)需要解決的滑動(dòng)沖突問題。

??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

最近在看社區(qū)提供的app_samples?,其中有一個(gè)線性容器 ArrayList,看我后讓我想起Android中Scroll與ListView嵌套使用時(shí)需要解決的滑動(dòng)沖突問題。

我想在OpenHarmony系統(tǒng)上是否也存在類似問題,Scroll與List嵌套后是否存在滑動(dòng)問題?

Scroll內(nèi)嵌套List先說個(gè)結(jié)論:
1、不會(huì)出現(xiàn)List中只顯示一個(gè)item問題;
2、滑動(dòng)事件不會(huì)沖突,在List區(qū)域可以滑動(dòng)列表,在非List區(qū)域可以滑動(dòng)Scroll;
3、滾動(dòng)時(shí),若List不設(shè)置寬高,則默認(rèn)全部加載,在對(duì)性能有要求的場景下建議指定List的寬高。

基礎(chǔ)信息

Scroll和List都屬于基礎(chǔ)容器。

Scroll:可滾動(dòng)的容器組件,當(dāng)子組件的布局尺寸超過父組件的尺寸時(shí),內(nèi)容可以滾動(dòng)。??官方介紹??List:列表包含一系列相同寬度的列表項(xiàng)。適合連續(xù)、多行呈現(xiàn)同類數(shù)據(jù),例如圖片和文本。官方介紹

需求

既然在OpenHarmony系統(tǒng)中Scroll與List不存在沖突問題,我們做一些其他的嘗試,讓Scroll與List的滾動(dòng)結(jié)合實(shí)現(xiàn)聯(lián)動(dòng)。
場景:實(shí)現(xiàn)世界杯主界面,包括球員banner、賽事、積分榜。

1、啟動(dòng)頁,3s后進(jìn)入主頁面。
2、頭部顯示球員banner,首次顯示3個(gè)球員,每隔3秒切換一個(gè)球員。
3、球賽列表,包括:對(duì)戰(zhàn)球隊(duì)、比分、比賽狀態(tài)(未開賽、已結(jié)束、進(jìn)行中)、賽程。
4、球賽列表拉到最后一條,觸發(fā)全屏顯示積分榜。
5、點(diǎn)擊返回首頁,返回到頁面頂部,球賽列表返回首條顯示。
6、在一個(gè)頁面中實(shí)現(xiàn)。

草圖

#盲盒+碼#OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用-開源基礎(chǔ)軟件社區(qū)

效果

??演示視頻地址??

#盲盒+碼#OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用-開源基礎(chǔ)軟件社區(qū)

#盲盒+碼#OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用-開源基礎(chǔ)軟件社區(qū)

#盲盒+碼#OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用-開源基礎(chǔ)軟件社區(qū)

#盲盒+碼#OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用-開源基礎(chǔ)軟件社區(qū)

開發(fā)環(huán)境

  • IDE:DevEco Studio 3.0 Beta4 Build Version: 3.0.0.992, built on July 14, 2022
  • SDK:Full SDK 9 3.2.7.6
  • 系統(tǒng):OpenHarmony v3.2 beta3

實(shí)踐

聲明:示例中的數(shù)據(jù)的自己構(gòu)建的,只為示例顯示使用,與實(shí)際比賽數(shù)據(jù)存在差異,請(qǐng)忽略。

1、創(chuàng)建項(xiàng)目

說明:在DevEco Studio IDE中構(gòu)建OpenHarmony Stage模型項(xiàng)目,SDK選擇9(3.2.7.6)

#盲盒+碼#OpenHarmony ArkUI 卡塔爾世界杯-Scroll與List嵌套使用-開源基礎(chǔ)軟件社區(qū)

2、關(guān)鍵代碼

import { BaseDataSource } from '../MainAbility/model/BaseDataSource'
import { Information } from '../MainAbility/model/Information'
import { MatchInfo, MatchState } from '../MainAbility/common/FlagData'
import { MatchDataResource } from '../MainAbility/model/MatchDataResource'
import { BannerDataResource } from '../MainAbility/model/BannerDataResource'
const TAG: string = 'ScrollList'
// 0代表滾動(dòng)到List頂部,1代表中間值,2代表滾動(dòng)到List底部
const SCROLL_LIST_POSITION = {
START: 0,
CENTER: 1,
END: 2
}
const LIST_START = {
TOP: 0,
BUTTON: 1
}
class MatchDataSource extends BaseDataSource<Information> {
constructor(infos: Information[]) {
super(infos)
}
}
class BannerDataSource extends BaseDataSource<BannerDataResource> {
constructor(infos: BannerDataResource[]) {
super(infos)
}
}
function mock(): Information[] {
var infos = []
for (var i = 0; i < 10; i++) {
var item = new Information()
item.id = i
item.state = Math.floor(Math.random() * 2) // 獲取0~2的隨機(jī)整數(shù)
var homeIndex: number = Math.floor(Math.random() * 12) // 獲取0~12的隨機(jī)整數(shù)
item.homeName = MatchInfo[homeIndex].name
item.homeFlag = MatchInfo[homeIndex].resource
var awayFieldIndex: number = Math.floor(Math.random() * 12) // 獲取0~12的隨機(jī)整數(shù)
if (awayFieldIndex === homeIndex) {
awayFieldIndex = Math.floor(Math.random() * 12) // 獲取0~12的隨機(jī)整數(shù)
}
item.awayFieldName = MatchInfo[awayFieldIndex].name
item.awayFieldFlag = MatchInfo[awayFieldIndex].resource
if (item.state != MatchState.NOTSTART) {
item.homeScore = Math.floor(Math.random() * 6)
item.awayFiledScore = Math.floor(Math.random() * 6)
}
var data: number = Math.floor(Math.random() * 20) // 獲取0~20的隨機(jī)整數(shù)
var time: number = Math.floor(Math.random() * 24) // 獲取0~24的隨機(jī)整數(shù)
item.gameTime = '12 - ' + data + ' ' + time + ' : 00'
infos[i] = item
}
return infos
}
function mockBanner(): BannerDataResource[] {
var banners = [{
id: 1,
resource: $r('app.media.banner_01')
},
{
id: 2,
resource: $r('app.media.banner_02')
},
{
id: 3,
resource: $r('app.media.banner_03')
},
{
id: 4,
resource: $r('app.media.banner_04')
},
{
id: 5,
resource: $r('app.media.banner_05')
}
]
return banners
}
@Entry
@Component
struct Index {
private listPosition: number = SCROLL_LIST_POSITION.START
@State private listState: number = LIST_START.TOP
private scrollerForScroll: Scroller = new Scroller() // 可滾動(dòng)容器組件的控制器
private scrollerForList: Scroller = new Scroller()
// mock數(shù)據(jù)
private matchData: Information[] = mock()
private matchDataSource: MatchDataSource = new MatchDataSource(this.matchData)
// banner
private bannerData: BannerDataResource[] = mockBanner()
private bannerDataSource: BannerDataSource = new BannerDataSource(this.bannerData)
private swiperController: SwiperController = new SwiperController()
@State private isShowFlashscreen: boolean = true
private timeOutID: number
aboutToAppear() {
this.startTimeout()
}
aboutToDisappear() {
this.stopTimeout()
}
build() {
Stack() {
if (this.isShowFlashscreen) {
Image($r('app.media.flashscreen'))
.width('100%')
.height('100%')
.objectFit(ImageFit.Cover)
} else {
Scroll(this.scrollerForScroll) {
Column() {
Swiper(this.swiperController) {
LazyForEach(this.bannerDataSource, (item: BannerDataResource) => {
Image(item.resource)
.width('33.3%')
.height('100%')
.objectFit(ImageFit.Cover)
}, item => item.id.toString())
}
.width('100%')
.height('35%')
.cachedCount(3)
.index(0)
.autoPlay(true)
.loop(true)
.displayMode(SwiperDisplayMode.AutoLinear)
.indicator(false)
.indicatorStyle({
selectedColor: $r('app.color.red_bg')
})
Divider().strokeWidth(3).color($r('app.color.red_bg'))
Column() {
List({
space: 10,
scroller: this.scrollerForList
}) {
LazyForEach(this.matchDataSource, (item: Information) => {
ListItem() {
Row() {
Column({ space: 10 }) {
Image(item.homeFlag)
.width(60)
.height(45)
.objectFit(ImageFit.Contain)
Text(item.homeName)
.width('100%')
.fontSize(16)
.textAlign(TextAlign.Center)
}
.width('30%')
Column({ space: 10 }) {
Text(this.getMatchState(item.state))
.width('100%')
.fontSize(12)
.fontColor($r('app.color.event_text'))
.textAlign(TextAlign.Center)
Text(this.getMatchSource(item))
.width('100%')
.fontSize(18)
.textAlign(TextAlign.Center)
Text(item.gameType)
.width('100%')
.fontSize(12)
.fontColor($r('app.color.event_text'))
.textAlign(TextAlign.Center)
}
.width('30%')
Column({ space: 10 }) {
Image(item.awayFieldFlag)
.width(60)
.height(45)
.objectFit(ImageFit.Contain)
Text(item.awayFieldName)
.width('100%')
.fontSize(16)
.textAlign(TextAlign.Center)
}
.width('30%')
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.SpaceBetween)
.border({
radius: 15
})
.backgroundColor($r('app.color.white'))
}
.width('100%')
.height(95)
}, item => item.id.toString())
}
.width('90%')
.height('100%')
.edgeEffect(EdgeEffect.Spring) // 滑動(dòng)效果
.onReachStart(() => {
// 滑動(dòng)開始
this.listPosition = SCROLL_LIST_POSITION.START
})
.onReachEnd(() => {
// 滑動(dòng)結(jié)束
this.listPosition = SCROLL_LIST_POSITION.END
})
.onScrollBegin((dx: number, dy: number) => {
console.info(TAG, `listPosition=${this.listPosition} dx=${dx} ,dy=${dy}`)
if (this.listPosition == SCROLL_LIST_POSITION.START && dy >= 0) {
// 列表頂部
// this.scrollerForScroll.scrollBy(0, -dy)
this.scrollerForScroll.scrollEdge(Edge.Start)
this.listState = LIST_START.TOP
} else if (this.listPosition == SCROLL_LIST_POSITION.END && dy <= 0) {
// 列表底部
// this.scrollerForScroll.scrollBy(0, -dy)
this.scrollerForScroll.scrollEdge(Edge.Bottom)
this.listState = LIST_START.BUTTON
}
this.listPosition = SCROLL_LIST_POSITION.CENTER
return {
dxRemain: dx,
dyRemain: dy
}
})
}
.width('100%')
.height('60%')
.padding({
top: 20,
bottom: 20
})
.borderRadius({
bottomLeft: 15,
bottomRight: 15
})
.backgroundColor($r('app.color.content_bg'))
Column() {
if (this.listState === LIST_START.TOP) {
Text('繼續(xù)上滑 積分排名')
.width('100%')
.height('5%')
.fontColor($r('app.color.white'))
.fontSize(14)
.textAlign(TextAlign.Center)
} else {
Text('回到首頁')
.width('100%')
.height('5%')
.fontColor($r('app.color.white'))
.fontSize(14)
.textAlign(TextAlign.Center)
.onClick(() => {
this.scrollerForScroll.scrollEdge(Edge.Start)
this.scrollerForList.scrollToIndex(0)
this.listState = LIST_START.TOP
})
}
Stack() {
Image($r('app.media.result_1'))
.width('100%')
.height('100%')
.objectFit(ImageFit.Cover)
Column() {
}.width('100%')
.height('100%')
.backgroundColor('#55000000')
Image($r('app.media.football_poster'))
.width('100%')
.height('100%')
.objectFit(ImageFit.Contain)
.opacity(0.70)
.borderRadius({
topLeft: 15,
topRight: 15
})
}.width('100%')
.height('95%')
}
.width('100%')
.height('100%')
}
}
.width('100%')
.height('100%')
.onScrollBegin((dx: number, dy: number) => {
return {
dxRemain: dx,
dyRemain: 0
}
})
}
}.width('100%')
.height('100%')
.backgroundColor($r('app.color.main_bg'))
}
getMatchState(state: number): string {
var stateVal: string
switch (state) {
case MatchState.PROGRESS: {
stateVal = '進(jìn)行中'
break;
}
case MatchState.NOTSTART: {
stateVal = '未開賽'
break;
}
case MatchState.CLOSED: {
stateVal = '已結(jié)束'
break;
}
default:
stateVal = ''
}
return stateVal;
}
getMatchSource(data: Information): string {
if (data.state === MatchState.NOTSTART) {
return '- : -'
} else {
return data.homeScore + ' : ' + data.awayFiledScore
}
}
startTimeout() {
this.timeOutID = setTimeout(() => {
this.isShowFlashscreen = false
}, 3000)
}
stopTimeout() {
clearTimeout(this.timeOutID)
}
}

根據(jù)代碼說明下實(shí)現(xiàn)方式

1、3s進(jìn)入主頁面,主要通過定時(shí)器setTimeout()實(shí)現(xiàn),設(shè)置3s后隱藏全屏圖片,全屏圖片父容器使用堆疊容器Stack包裹,通過this.isShowFlashscreen變量判斷是否隱藏全屏圖片,顯示主頁面。

2、主頁面中,最外層通過Scroll容器,作為主頁面的根容器。

3、球員banner使用滑塊視圖容器Swiper,內(nèi)部使用LazyForEach 懶加載方式加載球員圖片,單屏橫向顯示三個(gè)球員,所以球員的圖片高度為屏幕總寬度的33.3%,并將滑塊組件的displayMode屬性設(shè)置為SwiperDisplayMode.AutoLinear,讓Swiper滑動(dòng)一頁的寬度為子組件寬度中的最大值,這樣每次滑動(dòng)的寬度就是33.3%,一個(gè)球員的圖片。

4、賽程列表,使用List組件進(jìn)行加載,賽事item使用LazyForEach懶加載的方式提交列表加載效率,通過List中的事件監(jiān)聽器onReachStart(event: () => void)和onReachEnd(event: () => void) 監(jiān)聽列表達(dá)到起始位置或底末尾位置,并在onScrollBegin(event: (dx: number, dy: number) => { dxRemain: number, dyRemain: number })函數(shù)中監(jiān)聽列表的滑動(dòng)量,如果滑動(dòng)到List底部,再向上滑動(dòng)界面時(shí)觸發(fā)顯示“積分排行”界面。

5、積分排行界面內(nèi)容,初始化時(shí)超屏顯示,只有在滑動(dòng)到List底部是,才被拉起顯示,積分排行界面設(shè)置在Scroll容器中,通過this.scrollerForScroll.scrollEdge(Edge.Bottom) 拉起頁面。

6、點(diǎn)擊"返回首頁",通過設(shè)置this.scrollerForScroll.scrollEdge(Edge.Start),返回到Scroll頂部。

代碼中使用到的組件關(guān)鍵API

Scroll

名稱

功能描述

onScrollBegin<sup>9+</sup>(event: (dx: number, dy: number) => { dxRemain: number, dyRemain: number })

滾動(dòng)開始事件回調(diào)。

參數(shù):

- dx:即將發(fā)生的水平方向滾動(dòng)量。

- dy:即將發(fā)生的豎直方向滾動(dòng)量。

返回值:

- dxRemain:水平方向滾動(dòng)剩余量。

- dyRemain:豎直方向滾動(dòng)剩余量。

說明:

若通過onScrollBegin事件和scrollBy方法實(shí)現(xiàn)容器嵌套滾動(dòng),需設(shè)置子滾動(dòng)節(jié)點(diǎn)的EdgeEffect為None。如Scroll嵌套List滾動(dòng)時(shí),List組件的edgeEffect屬性需設(shè)置為EdgeEffect.None。

Swiper

名稱

參數(shù)類型

描述

index

number

設(shè)置當(dāng)前在容器中顯示的子組件的索引值。<br/>默認(rèn)值:0

autoPlay

boolean

子組件是否自動(dòng)播放,自動(dòng)播放狀態(tài)下,導(dǎo)航點(diǎn)不可操作。<br/>默認(rèn)值:false

interval

number

使用自動(dòng)播放時(shí)播放的時(shí)間間隔,單位為毫秒。<br/>默認(rèn)值:3000

indicator

boolean

是否啟用導(dǎo)航點(diǎn)指示器。<br/>默認(rèn)值:true

loop

boolean

是否開啟循環(huán)。

設(shè)置為true時(shí)表示開啟循環(huán),在LazyForEach懶循環(huán)加載模式下,加載的組件數(shù)量建議大于5個(gè)。<br/>默認(rèn)值:true

duration

number

子組件切換的動(dòng)畫時(shí)長,單位為毫秒。<br/>默認(rèn)值:400

vertical

boolean

是否為縱向滑動(dòng)。<br/>默認(rèn)值:false

itemSpace

number | string

設(shè)置子組件與子組件之間間隙。<br/>默認(rèn)值:0

displayMode

SwiperDisplayMode

主軸方向上元素排列的模式,優(yōu)先以displayCount設(shè)置的個(gè)數(shù)顯示,displayCount未設(shè)置時(shí)本屬性生效。<br/>默認(rèn)值:SwiperDisplayMode.Stretch

cachedCount<sup>8+</sup>

number

設(shè)置預(yù)加載子組件個(gè)數(shù)。<br/>默認(rèn)值:1

disableSwipe<sup>8+</sup>

boolean

禁用組件滑動(dòng)切換功能。<br/>默認(rèn)值:false

curve<sup>8+</sup>

Curve | string

設(shè)置Swiper的動(dòng)畫曲線,默認(rèn)為淡入淡出曲線,常用曲線參考Curve枚舉說明,也可以通過[]插值計(jì)算模塊提供的接口創(chuàng)建自定義的插值曲線對(duì)象。<br/>默認(rèn)值:Curve.Ease

indicatorStyle<sup>8+</sup>

{<br/>left?: Length,<br/>top?: Length,<br/>right?: Length,<br/>bottom?: Length,<br/>size?: Length,<br/>mask?: boolean,<br/>color?: ResourceColor,<br/>selectedColor?: ResourceColor<br/>}

設(shè)置導(dǎo)航點(diǎn)樣式:<br/>- left: 設(shè)置導(dǎo)航點(diǎn)距離Swiper組件左邊的距離。<br/>- top: 設(shè)置導(dǎo)航點(diǎn)距離Swiper組件頂部的距離。<br/>- right: 設(shè)置導(dǎo)航點(diǎn)距離Swiper組件右邊的距離。<br/>- bottom: 設(shè)置導(dǎo)航點(diǎn)距離Swiper組件底部的距離。<br/>- size: 設(shè)置導(dǎo)航點(diǎn)的直徑。<br/>- mask: 設(shè)置是否顯示導(dǎo)航點(diǎn)蒙層樣式。<br/>- color: 設(shè)置導(dǎo)航點(diǎn)的顏色。<br/>- selectedColor: 設(shè)置選中的導(dǎo)航點(diǎn)的顏色。

displayCount<sup>8+</sup>

number|string

設(shè)置一頁內(nèi)元素顯示個(gè)數(shù)。<br/>默認(rèn)值:1

effectMode<sup>8+</sup>

EdgeEffect

滑動(dòng)效果,目前支持的滑動(dòng)效果參見EdgeEffect的枚舉說明。<br/>默認(rèn)值:EdgeEffect.Spring

List

名稱

功能描述

onReachStart(event: () => void)

列表到達(dá)起始位置時(shí)觸發(fā)。

onReachEnd(event: () => void)

列表到底末尾位置時(shí)觸發(fā)。

onScrollBegin<sup>9+</sup>(event: (dx: number, dy: number) => { dxRemain: number, dyRemain: number })

列表開始滑動(dòng)時(shí)觸發(fā),事件參數(shù)傳入即將發(fā)生的滑動(dòng)量,事件處理函數(shù)中可根據(jù)應(yīng)用場景計(jì)算實(shí)際需要的滑動(dòng)量并作為事件處理函數(shù)的返回值返回,列表將按照返回值的實(shí)際滑動(dòng)量進(jìn)行滑動(dòng)。<br/>- dx:即將發(fā)生的水平方向滑動(dòng)量。<br/>- dy:即將發(fā)生的豎直方向滑動(dòng)量。<br/>- dxRemain:水平方向?qū)嶋H滑動(dòng)量。<br/>- dyRemain:豎直方向?qū)嶋H滑動(dòng)量。

??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

責(zé)任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-11-15 21:10:57

人工智能

2014-06-12 16:39:21

巴西世界杯請(qǐng)假

2014-06-13 15:51:07

世界杯天翼

2014-06-13 10:00:01

2014-07-15 16:43:57

2010-06-21 11:24:18

2014-06-30 10:33:07

2010-06-09 11:38:27

世界杯交換路由

2022-11-21 10:03:06

2014-06-05 15:18:53

大數(shù)據(jù)

2022-11-25 10:24:47

大數(shù)據(jù)科技與世界杯

2022-11-30 15:46:02

2014-05-28 15:31:32

更新

2014-07-17 15:31:07

QQ瀏覽器

2014-06-19 10:03:28

2022-12-21 14:28:07

騰訊云卡塔爾世界杯直播

2022-11-29 14:03:29

2018-08-03 16:11:41

彩電
點(diǎn)贊
收藏

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

日本一本草久p| 久久久精品中文字幕| 国产精品久久久久久久天堂第1集| 国产真实乱偷精品视频| 一区二区三区视频免费观看| 欧美四级电影网| 中文字幕日韩精品无码内射| 三级av在线| 久久电影网电视剧免费观看| 欧美大片在线看免费观看| 熟女丰满老熟女熟妇| 亚洲我射av| 欧美日韩一区二区三区在线免费观看| 亚洲精品成人久久久998| 亚洲第一成人av| 日韩电影在线一区| 欧美成人午夜免费视在线看片| 中文字幕一二三四区| 亚洲2区在线| 在线亚洲一区二区| 成人免费播放器| 淫片在线观看| 91蜜桃传媒精品久久久一区二区| 成人黄色大片在线免费观看| 在线天堂中文字幕| 欧美aa国产视频| 在线视频欧美日韩| 精品人妻一区二区三区日产| av日韩久久| 欧美综合欧美视频| www.中文字幕在线| 欧美aaaaaaa| 亚洲视频精选在线| 亚洲看片网站| 国内精品在线视频| 久久免费国产精品| 91在线视频网址| 国产亚洲人成a一在线v站| 日本xxxx免费| 91麻豆精品国产综合久久久 | 久久精品视频免费| 高清视频在线观看一区| 国产福利小视频| 精品一区精品二区高清| 国产精品美女免费| 国产亚洲欧美日韩高清| 麻豆精品网站| 日本韩国欧美精品大片卡二| 日本韩国欧美中文字幕| 国产一区二区三区久久| 性色av香蕉一区二区| 久久精品欧美一区二区| 亚洲五月婷婷| 性日韩欧美在线视频| 日本中文字幕免费| 亚洲麻豆视频| 人人爽久久涩噜噜噜网站| 色哟哟入口国产精品| 午夜男人的天堂| 哺乳一区二区三区中文视频 | 亚洲 美腿 欧美 偷拍| 处破女av一区二区| 国产尤物91| 日本一区高清| 国产天堂亚洲国产碰碰| 亚洲精品电影在线一区| 免费超碰在线| 亚洲制服丝袜av| 僵尸世界大战2 在线播放| 天天综合av| 欧亚洲嫩模精品一区三区| 不卡的av中文字幕| 日本一区二区三区视频在线看 | 国产欧美日韩中文| 97人妻人人澡人人爽人人精品 | 麻豆最新免费在线视频| 亚洲黄网站在线观看| 黄色一级片在线看| 日韩精品专区| 6080日韩午夜伦伦午夜伦| 欧美熟妇精品一区二区| 青青一区二区| 中文字幕欧美在线| 成人免费视频网站入口::| 伊人久久婷婷| 国产精品高清在线| www.黄色一片| 久久久亚洲午夜电影| 久久久国产精华液999999| xxx.xxx欧美| 在线精品视频免费播放| 亚洲国产欧美日韩在线| 亚洲最好看的视频| 久久福利视频导航| 日韩精品在线观看免费| 极品销魂美女一区二区三区| 国产欧美一区二区在线播放| 91高清在线| 亚洲一区二区免费视频| 免费看a级黄色片| 午夜精品在线| 中文字幕欧美专区| 国产黄色片免费看| 激情伊人五月天久久综合| 极品日韩久久| 岛国成人毛片| 欧美中文字幕不卡| 中文字幕在线国产| 99精品视频在线观看免费播放| 久久久久在线观看| 国产精品欧美综合亚洲| 久久婷婷综合激情| 日韩久久久久久久久久久久| 日本精品网站| 日韩av最新在线| 69av视频在线| 久国产精品韩国三级视频| 六月婷婷久久| 3344国产永久在线观看视频| 777奇米成人网| 蜜桃av乱码一区二区三区| aa国产精品| 岛国视频一区免费观看| 麻豆视频网站在线观看| 在线视频一区二区三区| 蜜臀av一区二区三区有限公司| 一区二区三区午夜探花| 国产一区二区在线免费视频| 国产有码在线| 色噜噜夜夜夜综合网| 国产精品伦子伦| 亚洲第一网站| 成人区精品一区二区| 在线观看三级视频| 4438x成人网最大色成网站| 超碰人人人人人人人| 日本美女一区二区三区| 欧美日本亚洲| 东京一区二区| 亚洲色图50p| 亚洲欧美一区二区三区在线观看 | 欧美挠脚心视频网站| 亚洲精品午夜视频| 免播放器亚洲| 欧美性大战久久久久| 波多野结衣久久精品| 精品亚洲男同gayvideo网站| 六月丁香在线视频| 91视频免费播放| 国产av无码专区亚洲精品| 午夜先锋成人动漫在线| 欧美中文字幕视频| 国产尤物视频在线| 欧美日韩美少妇| 登山的目的在线| 国产一区二区精品在线观看| 国产一区一区三区| 在线精品视频一区| 国内久久久精品| 人妻va精品va欧美va| 精品久久久久久久久久久久久久 | 亚洲一区在线电影| 国产一线在线观看| 销魂美女一区二区三区视频在线| 欧美日韩精品久久| 九九九精品视频| 欧美成人午夜激情视频| 天堂在线视频免费观看| 一本大道久久a久久综合婷婷| 性欧美一区二区| 久久国产麻豆精品| 国产激情在线看| 欧美交a欧美精品喷水| 国产精品电影在线观看| 黄网页免费在线观看| 欧美不卡视频一区| 天天干天天干天天干天天| 国产欧美一区二区精品忘忧草| 中文字幕久久av| 1024日韩| 亚洲国产欧美不卡在线观看| 91午夜精品| 国产精品h在线观看| 黄色av电影在线播放| 亚洲国产欧美一区二区三区同亚洲 | 久久久国产精品无码| 日韩电影在线观看一区| 成年丰满熟妇午夜免费视频| 蜜桃成人av| 成人精品一区二区三区电影黑人 | 女人天堂亚洲aⅴ在线观看| 国产综合动作在线观看| 福利视频亚洲| 国产做受69高潮| 91这里只有精品| 欧美精品一区在线观看| 在线免费看av的网站| 亚洲成国产人片在线观看| 日韩不卡av在线| 成人国产在线观看| 91女神在线观看| 亚洲一区中文| 狠狠入ady亚洲精品经典电影| 99久久综合狠狠综合久久止| 成人免费影院| 久久伊人精品一区二区三区| 欧亚一区二区| www.日韩视频| 神马久久高清| 欧美一卡2卡三卡4卡5免费| 日本中文字幕在线| 一区二区在线看| 久久婷婷五月综合| 9人人澡人人爽人人精品| 中文字幕第38页| 国产一区二区你懂的| 免费的av在线| 日韩精品四区| 免费一区二区三区在在线视频| 99亚洲男女激情在线观看| 国产精品第一视频| 午夜av不卡| 欧美激情视频一区二区| 黄色国产精品视频| 菠萝蜜视频国产在线播放| 亚洲欧美日韩国产中文专区| 亚洲欧美另类日韩| 7777精品伊人久久久大香线蕉完整版 | www.av网站| 欧美久久高跟鞋激| 国产又粗又猛又爽又| 性欧美大战久久久久久久久| 免费一级肉体全黄毛片| 亚洲视频一二三| 老司机成人免费视频| 中文字幕在线一区免费| 亚洲色图第四色| 国产欧美日韩精品a在线观看| 37p粉嫩大胆色噜噜噜| 97久久精品人人澡人人爽| 久久久久无码国产精品一区李宗瑞| 国产原创一区二区三区| www.午夜av| 国产伦精品一区二区三区免费| 日本美女视频一区| 久久99精品网久久| 1区2区在线| 亚洲国产日韩欧美在线动漫| 国产裸体永久免费无遮挡| 欧美性一二三区| 人妻中文字幕一区二区三区| 91成人免费网站| 亚洲国产一区二区精品视频| 亚洲天堂中文字幕在线观看| 99porn视频在线| jizz性欧美23| 国产日产精品一区二区三区四区| 国产精品黄网站| 久久狠狠久久综合桃花| 综合综合综合综合综合网| 欧美性天天影院| 日韩国产综合| 综合久久国产| 国内自拍一区| 中文字幕无码精品亚洲35| 久久www成人_看片免费不卡| 久久久精品麻豆| 久久99国产精品久久| 制服.丝袜.亚洲.中文.综合懂| 成人国产亚洲欧美成人综合网| 菠萝菠萝蜜网站| 国产精品日韩精品欧美在线| 欧美三级小视频| 欧美视频不卡中文| 中文字幕+乱码+中文| 91精品国产高清一区二区三区蜜臀 | 你懂的在线看| 久久精品国产亚洲精品| 成人高潮aa毛片免费| 国产999视频| 日韩在线视频一区二区三区| 国产一区二区在线网站| 日韩在线精品| 久久久久久人妻一区二区三区| 日日摸夜夜添夜夜添精品视频 | 亚洲国产高清aⅴ视频| 国产精品国产精品88| 精品国产91久久久| 中文字幕精品一区二| 精品美女一区二区三区| 美州a亚洲一视本频v色道| 久久精品国产96久久久香蕉| 美女露胸视频在线观看| 成人av番号网| 亚洲精品亚洲人成在线| 69精品丰满人妻无码视频a片| 久久亚洲精品伦理| 人妻 丝袜美腿 中文字幕| 国产精品久久久久影院色老大| 久久免费视频99| 7777女厕盗摄久久久| 免费毛片在线| 欧美激情久久久久久| 99国内精品久久久久| 欧美人xxxxx| 99精品热视频只有精品10| 伊人成人免费视频| 中文字幕免费不卡| 91av在线免费视频| 欧美一二区视频| 1769在线观看| 人妖精品videosex性欧美| 亚洲国产欧美在线观看| 亚洲永久一区二区三区在线| 亚洲男女自偷自拍| aaa黄色大片| 亚洲女同一区二区| 夜夜狠狠擅视频| 亚洲欧美成人网| 蜜桃视频m3u8在线观看| www.成人三级视频| 欧美国产另类| 网站在线你懂的| 国产精品九色蝌蚪自拍| 成人a v视频| 亚洲欧美综合精品久久成人| 乱馆动漫1~6集在线观看| 国产精品v欧美精品∨日韩| 国产精品福利在线观看播放| 在线观看国产福利| 国产女主播视频一区二区| 日韩综合在线观看| 日韩电影中文字幕在线| а√在线中文在线新版| 国产99视频精品免费视频36| 欧美日韩亚洲一区三区| a级大片免费看| 亚洲欧美视频一区| 国产三级精品在线观看| 久久久国产精彩视频美女艺术照福利 | 中文在线日韩| www.色.com| 夜夜精品视频一区二区| 免费观看黄色一级视频| 国内揄拍国内精品| 精品精品国产毛片在线看| 18禁网站免费无遮挡无码中文| 成人国产视频在线观看| 久久午夜免费视频| 国产午夜精品理论片a级探花| 都市激情亚洲一区| 亚洲第一导航| 国产一区激情在线| 高h视频免费观看| 凹凸精品一区二区三区| 亚洲精品久久久久中文字幕二区 | 久久久久久毛片免费看 | 亚洲国产精品va在线看黑人动漫| 波多野结衣中文在线| 久久视频在线观看中文字幕| 久久久久91| 999福利视频| 欧美一级片在线看| 91桃色在线观看| 免费毛片一区二区三区久久久| 免费人成黄页网站在线一区二区 | 你懂的在线看| 成人午夜激情网| 亚洲国产91| 在线观看国产精品一区| 欧美美女喷水视频| 欧美人与性动交α欧美精品济南到 | 日韩欧美视频专区| 4438x全国最大成人| 欧美日韩另类在线| 在线毛片网站| 国产成人精品免费视频大全最热 | 久久久最新网址| 日韩精品亚洲aⅴ在线影院| 国语对白做受xxxxx在线中国| 国产精品嫩草久久久久| 欧美色图亚洲视频| 欧美成人一级| 男同互操gay射视频在线看| 成人免费va视频| 国精品一区二区| 视频一区二区精品| 精品一区二区在线视频| 国产真实乱人偷精品视频| 亚洲视频一区二区| 久久久久久久久久久久电影| 国产成人无码精品久久久性色| 中文字幕亚洲一区二区av在线 | 欧美日韩成人免费观看| 亚洲女成人图区| 中文无码日韩欧| 99热这里只有精品在线播放| 亚洲成a人v欧美综合天堂下载| 日本高清在线观看wwwww色| 久久福利电影|