日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【水滴石穿】imooc_gp

發(fā)布時(shí)間:2024/8/26 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【水滴石穿】imooc_gp 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這個(gè)項(xiàng)目應(yīng)該是一個(gè)標(biāo)桿項(xiàng)目,看到之前很有幾個(gè)項(xiàng)目都是按照這個(gè)項(xiàng)目的頁面擺放順序來的
不過可以作為自己做項(xiàng)目的一種方式
源碼地址為:https://github.com/pgg-pgg/imooc_gp
項(xiàng)目的數(shù)據(jù)流是mobx
啟動(dòng)頁不是定時(shí)器自動(dòng)跳轉(zhuǎn)那種,而是滑動(dòng)那種
我們分析代碼如下



上面是啟動(dòng)頁的

//index.js /** @format */import {AppRegistry} from 'react-native'; import setup from "./js/pages/setup" import {name as appName} from './app.json';AppRegistry.registerComponent(appName, () => setup); //js/pages/setup.js /*** Sample React Native App* https://github.com/facebook/react-native** @format* @flow*/import React, {Component} from 'react'; import {Navigator} from 'react-native-deprecated-custom-components' import MobxTest from "../MobxTest"; import MyPageTest from "./My/MyPageTest"; import WelcomePage from "./WelcomePage";function setup() {//進(jìn)行一些初始化的配置class Root extends Component {renderScene(route, navigator) {let Component = route.component;return <Component {...route.params} navigator={navigator}/>}render() {return <NavigatorinitialRoute={{component: WelcomePage}}renderScene={(route, navigator)=>this.renderScene(route, navigator)}/>}}return <Root/>; }module.exports = setup;

首先進(jìn)入的是welcomePage頁面

//js/pages/WelcomePage.js import React, {Component} from 'react'; import {Platform,StyleSheet,Image,Text,View, AsyncStorage, } from 'react-native'; import NavigationBar from "../common/NavigationBar" import HomePage from "./HomePage" import GuidePage from "./GuidePage"; import ThemeDao from "../expand/dao/ThemeDao"; import SplashScreen from 'react-native-splash-screen' export default class WelcomePage extends Component{openApp(){//進(jìn)行了判斷是不是第一次打開AsyncStorage.getItem('isFirst',(error,result)=>{if (result === 'false') {console.log('不是第一次打開');this.props.navigator.resetTo({//不是第一次打開就是進(jìn)入home頁面component:HomePage,params:{theme:this.theme,...this.props}})} else {console.log('第一次打開');//是第一次打開就進(jìn)入導(dǎo)航頁this.props.navigator.replace({component:GuidePage,params:{theme:this.theme,...this.props}})}});}componentDidMount(): void {new ThemeDao().getTheme().then(data=>{this.theme = data;})this.timer = setTimeout(()=>{SplashScreen.hide();this.openApp()},1000)}componentWillUnmount(): void {this.timer&&clearTimeout(this.timer);}constructor(props){super(props)}render(){return null;} }

第一次打開進(jìn)入的導(dǎo)航頁面

//GuidePage import {StyleSheet, View, Button, Text, Image, TouchableOpacity,AsyncStorage} from 'react-native'; import React, {Component} from 'react'; import {PagerTabIndicator, IndicatorViewPager, PagerTitleIndicator, PagerDotIndicator} from 'rn-viewpager'; import HomePage from "./HomePage";export default class GuidePage extends Component {render() {let text1 = '消費(fèi)者第一\n合作伙伴第二\nQunar第三';let text2 = '大聲說話\n無\'總\'稱謂\n遇到批評(píng)三不問';let text3 = '高層不諉過\n中層不放羊\n基層不跳步';return (<View style={{flex: 1}}><IndicatorViewPagerstyle={{flex: 1}}indicator={GuidePage._renderDotIndicator()}><View style={{backgroundColor: '#ff8800', justifyContent: 'center'}}><Image resizeMode={'contain'} style={styles.image}source={require('../../res/images/s_0_1.png')}/><Text style={styles.text_desc}>{text1}</Text></View><View style={{backgroundColor: '#669900', justifyContent: 'center'}}><Image resizeMode={'contain'} style={styles.image}source={require('../../res/images/s_1_1.png')}/><Text style={styles.text_desc}>{text2}</Text></View><View style={{backgroundColor: '#aa66cc', justifyContent: 'center'}}><Image resizeMode={'contain'} style={styles.image}source={require('../../res/images/s_2_1.png')}/><Text style={styles.text_desc}>{text3}</Text><TouchableOpacity onPress={()=>{// 存儲(chǔ)AsyncStorage.setItem('isFirst','false',(error)=>{if (error) {alert(error);}});this.props.navigator.resetTo({component:HomePage,params:{// theme:this.props.theme,...this.props}})}}><Text style={styles.text}>開始使用</Text></TouchableOpacity></View></IndicatorViewPager></View>);}static _renderDotIndicator() {return <PagerDotIndicator pageCount={3}/>;}}const styles = StyleSheet.create({text: {alignSelf: 'center',padding: 5,backgroundColor: '#2196f3',borderRadius: 5,fontSize: 18,color: 'white',},text_desc: {height:200,textAlign: 'center',textAlignVertical:'center',fontSize: 20,color: 'white',alignSelf: 'center',},image: {width: 200,height: 200,alignSelf: 'center'},btn: {width: 150,height: 40,backgroundColor: '#1296db',borderRadius: 8,justifyContent: 'center',alignItems: 'center',marginBottom: 50},btnText: {fontSize: 18,color: '#fff'},});

//js/pages/HomePage.js //里面的tab切換,根據(jù)選中的跳轉(zhuǎn)進(jìn)去不同的頁面 /*** Sample React Native App* https://github.com/facebook/react-native** @format* @flow*/import React, {Component} from 'react'; import {Platform,StyleSheet,Image,Text,View,DeviceEventEmitter,} from 'react-native'; import TabNavigator from 'react-native-tab-navigator' import PopularPage from "./popular/PopularPage"; import Toast ,{DURATION}from "react-native-easy-toast"; import TrendingPage from "./trending/TrendingPage"; import FavoritePage from "./favorite/FavoritePage"; import MyPage from "./My/MyPage"; import BaseComponent from "./BaseComponent"; import codePush from "react-native-code-push";export const ACTION_HOME = {A_SHOW_TOAST:'showToast',A_RESTART:'restart',A_THEME:'THEME'}; export const FLAG_TAB={flag_popularTab:'tb_popular',flag_trendingTab:'tb_trending',flag_favoriteTab:'tb_favorite',flag_myTab:'tb_my', } export default class HomePage extends BaseComponent {constructor(props) {super(props);let selectedTab=this.props.selectedTab?this.props.selectedTab:'tb_popular';this.state = {selectedTab: selectedTab,theme:this.props.theme,}}componentDidMount(): void {super.componentDidMount();this.listener = DeviceEventEmitter.addListener('ACTION_HOME',(action,params)=>this.onAction(action,params));this.update();}/*** 想codepush檢查更新*/update(){codePush.sync({updateDialog:{appendReleaseDescription:true,descriptionPrefix:'更新內(nèi)容',title:'更新',mandatoryUpdateMessage:'',mandatoryContinueButtonLabel:'更新',},mandatoryInstallMode:codePush.InstallMode.ON_NEXT_RESTART,});}/*** 通知回調(diào)事件處理* @param action* @param params*/onAction(action,params){if(ACTION_HOME.A_RESTART===action){this.onRestart(params)}else if(ACTION_HOME.A_SHOW_TOAST===action){this.toast.show(params.text,DURATION.LENGTH_SHORT);}}/*** 重啟首頁* @param jumpToTab*/onRestart(jumpToTab){this.props.navigator.resetTo({component:HomePage,params:{...this.props,selectedTab:jumpToTab}})}componentWillUnmount(): void {super.componentWillUnmount();if (this.listener) {this.listener.remove();}}_renderType(Component,selectTab,title,renderIcon){return <TabNavigator.Itemselected={this.state.selectedTab === selectTab}selectedTitleStyle={this.state.theme.styles.selectedTitleStyle}title={title}renderIcon={() => <Image style={styles.image} source={renderIcon}/>}renderSelectedIcon={() => <Image style={[styles.image,this.state.theme.styles.tabBarSelectedIcon]} source={renderIcon}/>}// badgeText="1"onPress={() => this.setState({selectedTab: selectTab})}><View style={styles.page1}><Component {...this.props} theme={this.state.theme}/></View></TabNavigator.Item>}render() {return (// tab切換<View style={styles.container}><TabNavigator>{this._renderType(PopularPage,'tb_popular','最熱',require('../../res/images/ic_polular.png'))}{this._renderType(TrendingPage,'tb_trending','趨勢(shì)',require('../../res/images/ic_trending.png'))}{this._renderType(FavoritePage,'tb_favorite','收藏',require('../../res/images/ic_favorite.png'))}{this._renderType(MyPage,'tb_my','我的',require('../../res/images/ic_my.png'))}</TabNavigator><Toast ref={toast=>this.toast=toast}/></View>);} }const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},page1:{flex: 1,},page2:{flex: 2,backgroundColor: 'green'},image:{width:22,height:22} }); //其實(shí)挺有意思的

tab首先的頁面

應(yīng)該只是布局,然后從后端請(qǐng)求數(shù)據(jù)渲染即可
代碼如下:

//js/pages/popular/PopularPage.js import React, {Component} from 'react'; import {Image,StyleSheet, TouchableOpacity,View, } from 'react-native'; import NavigationBar from "../../common/NavigationBar"; import ScrollableTabView, {ScrollableTabBar} from 'react-native-scrollable-tab-view' import LanguageDao, {FLAG_LANGUAGE} from '../../expand/dao/LanguageDao' import PopularTab from "./PopularTab"; import ViewUtils from "../../util/ViewUtils"; import SearchPage from "../SearchPage"; import {MORE_MENU} from "../../common/MoreMenu"; import {FLAG_TAB} from "../HomePage"; import MoreMenu from "../../common/MoreMenu"; import BaseComponent from "../BaseComponent"; import CustomTheme from "../My/CustomTheme";export default class PopularPage extends BaseComponent {constructor(props) {super(props);this.languageDao = new LanguageDao(FLAG_LANGUAGE.flag_key);this.state = {languages: [],customThemeViewVisible: false,theme:this.props.theme,}}componentDidMount() {super.componentDidMount()//渲染數(shù)據(jù)this.loadData();}loadData() {//取出數(shù)據(jù)this.languageDao.fetch().then(result => {this.setState({languages: result})}).catch(error => {console.log(error)})} //點(diǎn)擊不同的語言界面,最后是進(jìn)入不同的語言列表新聞中renderRightButton() {return <View style={{flexDirection:'row'}}><TouchableOpacityonPress={()=> {this.props.navigator.push({component:SearchPage,params:{...this.props}})}}><View style={{padding:5,marginRight:8}}><Imagestyle={{width:24,height:24}}source={require('../../../res/images/ic_search_white_48pt.png')}/></View></TouchableOpacity>{ViewUtils.getMoreButton(()=>this.refs.moreMenu.open())}</View>}renderMoreView(){let params={...this.props,fromPage:FLAG_TAB.flag_popularTab};return <MoreMenuref="moreMenu"{...params}menus={[MORE_MENU.Custom_Key,MORE_MENU.Sort_Key,MORE_MENU.Remove_Key,MORE_MENU.Share,MORE_MENU.Custom_Theme,MORE_MENU.About_Author,MORE_MENU.About]}anchorView={()=>this.refs.moreMenuButton}onMoreMenuSelect={(e)=> {if (e === MORE_MENU.Custom_Theme) {this.setState({customThemeViewVisible:true})}}}/>}renderCustomThemeView() {return (<CustomTheme visible={this.state.customThemeViewVisible}{...this.props}onClose={() => {this.setState({customThemeViewVisible: false,})}}/>)}render() {let statusBar = {backgroundColor:this.state.theme.themeColor,barStyle:'light-content',};//判斷語言切換的,這邊用到的是ScrollableTabView組件let content = this.state.languages.length > 0 ? <ScrollableTabViewtabBarBackgroundColor={this.state.theme.themeColor}tabBarActiveTextColor='#fff'tabBarInactiveTextColor='#333'tabBarUnderlineStyle={{backgroundColor: '#e7e7e7', height: 2}}renderTabBar={() => <ScrollableTabBar/>}>{this.state.languages.map((result, i, arr) => {let lan = arr[i];return lan.checked ?<PopularTab key={i} tabLabel={lan.name} {...this.props}/>: null;})}</ScrollableTabView> : null;//底部圖標(biāo)切換return <View style={styles.container}><NavigationBartitle={'最熱'}leftButton={<View/>}rightButton={this.renderRightButton()}statusBar={statusBar}style={this.state.theme.styles.navBar}/>{content}{this.renderMoreView()}{this.renderCustomThemeView()}</View>} }const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},}); //js/pages/popular/PopularTab.js //下拉刷新和獲取數(shù)據(jù) import React, {Component} from 'react'; import {DeviceEventEmitter, ListView, RefreshControl, StyleSheet, View} from "react-native"; import ProjectModel from "../../model/ProjectModel"; import Utils from "../../util/Utils"; import DescPage from "./DescPage"; import {FLAG_STORAGE} from "../../expand/dao/DataRepository"; import RepositoryCell from "../../common/RepositoryCell"; import FavoriteDao from "../../expand/dao/FavoriteDao"; import DataRepository from "../../expand/dao/DataRepository"; import ActionUtils from "../../util/ActionUtils";const URL = "https://api.github.com/search/repositories?q="; const QUERY_STR = '&sort=stars'; const favoriteDao = new FavoriteDao(FLAG_STORAGE.flag_popular); const dataRepository = new DataRepository(FLAG_STORAGE.flag_popular);export default class PopularTab extends Component {constructor(props) {super(props);this.isFavoriteChange=false;this.state = {result: '',isLoading: false,dataSource: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}),favoriteKeys :[],theme:this.props.theme,}}componentDidMount(): void {this.onLoad();this.listener= DeviceEventEmitter.addListener('favoriteChanged_popular',()=>{this.isFavoriteChange = true;})}componentWillUnmount(): void {if (this.listener){this.listener.remove();}}componentWillReceiveProps(nextProps: Readonly<P>, nextContext: any): void {if (this.isFavoriteChange) {this.isFavoriteChange=false;this.getFavoriteKeys()}else if (nextProps.theme !== this.state.theme) {this.updateState({theme:nextProps.theme,})this.flushFavoriteState()}}/*** 更新project item收藏狀態(tài)*/flushFavoriteState(){let projectModels = [];let items = this.items;for(let i =0 ,len = items.length;i<len;i++){projectModels.push(new ProjectModel(items[i],Utils.checkFavorite(items[i],this.state.favoriteKeys)))}this.updateState({isLoading:false,dataSource:this.getDataSource(projectModels),})}getDataSource(data){return this.state.dataSource.cloneWithRows(data);}getFavoriteKeys(){favoriteDao.getFavoriteKeys().then(keys=>{if (keys) {this.updateState({favoriteKeys: keys})}this.flushFavoriteState();}).catch(e=>{this.flushFavoriteState()})}updateState(dic){if (!this) return;this.setState(dic);}onLoad() {this.updateState({isLoading: true});let url = URL + this.props.tabLabel + QUERY_STR;dataRepository.fetchRepository(url).then(result => {this.items = result && result.items ? result.items : result ? result : [];this.getFavoriteKeys();if (!this.items||result && result.update_date && !dataRepository.checkData(result.update_date)) {return dataRepository.fetchNetRepository(url)}}).then(items => {if (!items || items.length === 0) {return;} else {this.items=items;this.getFavoriteKeys()}}).catch(error => {console.log(error);this.updateState({isLoading:false,})});}choose(projectModel) {return <RepositoryCellonSelect={()=>ActionUtils.onSelectRepository({flag: FLAG_STORAGE.flag_popular,...this.props,projectModel: projectModel,})}theme={this.state.theme}key={projectModel.item.id}onFavorite={(item,isFavorite)=>ActionUtils.onFavorite(favoriteDao,item, isFavorite)}projectModel={projectModel}/>}render() {return <View style={styles.container}><ListViewdataSource={this.state.dataSource}renderRow={(data) => this.choose(data)}refreshControl={<RefreshControlrefreshing={this.state.isLoading}onRefresh={() => this.onLoad()}color={this.state.theme.themeColor}tintColor={this.state.theme.themeColor}title={'Loading...'}titleColor={this.state.theme.themeColor}/>}/></View>}}const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},page1: {flex: 1,backgroundColor: 'red'},page2: {flex: 2,backgroundColor: 'green'},image: {width: 22,height: 22},item: {backgroundColor: '#169',height: 100,margin: 15,alignItems: 'center',justifyContent: 'center',},text_my: {color: 'black',fontSize: 20,},text: {color: 'white',fontSize: 20,},indicatorContainer: {alignItems: 'center'},indicator: {color: 'red',margin: 10} }); //js/pages/popular/store/Store.js import {observable} from "mobx"; import DataRepository from "../../../expand/dao/DataRepository";export default class PopularStore {api;@observable popularItems=[];constructor(){this.api=new DataRepository();}getPopularItem(id){return this.popularItems.find(item=>item.id.toString()===id);}@action.bound()fetchPopularList(tabLabel){return this.api.getPopularInfo(tabLabel).then(action(result => {this.items = result && result.items ? result.items : result ? result : [];this.getFavoriteKeys();if (!this.items||result && result.update_date && !dataRepository.checkData(result.update_date)) {return dataRepository.fetchNetRepository(url)}}).then(items => {if (!items || items.length === 0) {return;} else {this.items=items;this.getFavoriteKeys()}}).catch(error => {console.log(error);this.updateState({isLoading:false,})}));}} //js/pages/popular/model/ProjectModel.js import {observable} from "mobx";export default class ProjectModel{@observable item;@observable isFavorite; } //js/pages/popular/DescPage.js import React, {Component} from 'react' import {View,StyleSheet,WebView,TouchableOpacity,Image,} from 'react-native' import NavigationBar from "../../common/NavigationBar"; import ViewUtils from "../../util/ViewUtils"; import FavoriteDao from "../../expand/dao/FavoriteDao"; import share from "../../../res/data/share"; import UShare from "../../common/UShare"; import BackPressComponent from "../../common/BackPressComponent";const TRENDING_URL = 'https://github.com/'; export default class DescPage extends Component {constructor(props) {super(props);// alert(this.props.title);this.backPress = new BackPressComponent({backPress:(e)=>this.onBackPress(e)});this.url = this.props.projectModel.item.html_url ? this.props.projectModel.item.html_url : TRENDING_URL + this.props.projectModel.item.fullName;let title = this.props.projectModel.item.full_name ? this.props.projectModel.item.full_name : this.props.projectModel.item.fullName;this.favoriteDao = new FavoriteDao(this.props.flag);this.state = {url: this.url,title: title,canGoBack: false,isFavorite: this.props.projectModel.isFavorite,favoriteIcon: this.props.projectModel.isFavorite ? require('../../../res/images/ic_star.png'): require('../../../res/images/ic_star_navbar.png'),theme: this.props.theme,}}componentDidMount(): void {this.backPress.componentDidMount();}componentWillUnmount(): void {this.backPress.componentWillUnmount();if (this.props.onUpdateFavorite)this.props.onUpdateFavorite();}onBack() {if (this.state.canGoBack) {this.webView.goBack()} else {this.props.navigator.pop();}}onBackPress(e){this.onBack();return true;}go() {this.setState({url: this.text})}onNavigationStateChange(e) {this.setState({canGoBack: e.canGoBack,url: e.url,})}onRightButtonClick() {let projectModel = this.props.projectModel;this.setFavoriteState(projectModel.isFavorite = !projectModel.isFavorite);const key = projectModel.item.fullName ? projectModel.item.fullName : projectModel.item.id.toString();if (projectModel.isFavorite) {this.favoriteDao.saveFavoriteItem(key, JSON.stringify(projectModel.item))} else {this.favoriteDao.removeFavoriteItem(key)}}setFavoriteState(isFavorite) {this.setState({isFavorite: isFavorite,favoriteIcon: isFavorite ? require('../../../res/images/ic_star.png'): require('../../../res/images/ic_star_navbar.png')})}renderRightButton() {return <View style={{flexDirection: 'row'}}>{ViewUtils.getShareButton(()=>this.shareInfo())}<TouchableOpacity onPress={() => this.onRightButtonClick()}><Image style={{width: 20, height: 20, marginRight: 10}} source={this.state.favoriteIcon}/></TouchableOpacity></View>}shareInfo(){const shareApp = share.share_app;UShare.share(shareApp.title, shareApp.content,shareApp.imgUrl,shareApp.url,()=>{},()=>{});}render() {let statusBar = {backgroundColor: this.state.theme.themeColor};let titleLayoutStyle = this.state.title.length>20?{paddingRight: 30}:null;return <View style={styles.container}><NavigationBartitle={this.state.title}statusBar={statusBar}titleLayoutStyle={titleLayoutStyle}style={this.state.theme.styles.navBar}rightButton={this.renderRightButton()}leftButton={ViewUtils.getLeftButton(() => this.onBack())}/><WebView ref={webView => this.webView = webView}source={{uri: this.state.url}}startInLoadingState={true}onNavigationStateChange={(e) =>this.onNavigationStateChange(e)}></WebView></View>}}const styles = StyleSheet.create({container: {flex: 1},tips: {fontSize: 20},row: {flexDirection: 'row',alignItems: 'center',margin: 10},input: {height: 40,flex: 1,borderWidth: 1,margin: 2,} });

趨勢(shì)頁面跟最熱頁面類似

//js/pages/trending/TrendingPage.js import React, {Component} from 'react'; import {Platform,StyleSheet,Image,Text,View,TextInput,ListView,RefreshControl,DeviceEventEmitter,TouchableOpacity, } from 'react-native'; import NavigationBar from "../../common/NavigationBar" import DataRepository, {FLAG_STORAGE} from "../../expand/dao/DataRepository" import ScrollableTabView, {ScrollableTabBar} from 'react-native-scrollable-tab-view' import RepositoryCell from "../../common/RepositoryCell"; import LanguageDao, {FLAG_LANGUAGE} from '../../expand/dao/LanguageDao' import DescPage from "../popular/DescPage"; import TrendingCell from "../../common/TrendingCell"; import TimeSpan from "../../model/TimeSpan"; import Popover from "../../common/Popover"; import FavoriteDao from "../../expand/dao/FavoriteDao"; import ProjectModel from "../../model/ProjectModel"; import Utils from "../../util/Utils"; import ActionUtils from "../../util/ActionUtils"; import {FLAG_TAB} from "../HomePage"; import MoreMenu, {MORE_MENU} from "../../common/MoreMenu"; import ViewUtils from "../../util/ViewUtils"; import BaseComponent from "../BaseComponent"; import CustomTheme from "../My/CustomTheme";const API_URL = "https://github.com/trending/"; var timeSpanTextArray = [new TimeSpan('今 天', 'since=daily'), new TimeSpan('本 周', 'since=weekly'), new TimeSpan('本 月', 'since=monthly')]; var favoriteDao = new FavoriteDao(FLAG_STORAGE.flag_trending); var dataRespository = new DataRepository(FLAG_STORAGE.flag_trending);export default class TrendingPage extends BaseComponent {constructor(props) {super(props);this.languageDao = new LanguageDao(FLAG_LANGUAGE.flag_language);this.state = {languages: [],isVisible: false,buttonRect: {},timeSpan: timeSpanTextArray[0],theme:this.props.theme,customThemeViewVisible: false,}}componentDidMount() {super.componentDidMount();this.loadData();}componentWillReceiveProps(nextProps: Readonly<P>, nextContext: any): void {if (nextProps.timeSpan !== this.props.timeSpan) {this.loadData(nextProps.timeSpan)}}loadData() {this.languageDao.fetch().then(result => {this.setState({languages: result})}).catch(error => {console.log(error)})}showPopover() {this.refs.button.measure((ox, oy, width, height, px, py) => {this.setState({isVisible: true,buttonRect: {x: px, y: py, width: width, height: height}});});}closePopover() {this.setState({isVisible: false,});}renderTitleView() {return <View><TouchableOpacity ref={'button'} onPress={() => {this.showPopover()}}><View style={{flexDirection: 'row', alignItems: 'center'}}><Text style={{fontSize: 18,color: 'white',fontWeight: '400'}}>趨勢(shì) {this.state.timeSpan.showText}</Text><Image style={{width: 12, height: 12, marginLeft: 5}}source={require('../../../res/images/ic_spinner_triangle.png')}/></View></TouchableOpacity></View>}onSelectTimeSpan(timeSpan) {this.setState({timeSpan: timeSpan,isVisible: false,})}renderMoreView() {let params = {...this.props, fromPage: FLAG_TAB.flag_popularTab};return <MoreMenuref="moreMenu"{...params}menus={[MORE_MENU.Custom_Language, MORE_MENU.Sort_Language,MORE_MENU.Share, MORE_MENU.Custom_Theme,MORE_MENU.About_Author, MORE_MENU.About]}anchorView={() => this.refs.moreMenuButton}onMoreMenuSelect={(e) => {if (e === MORE_MENU.Custom_Theme) {this.setState({customThemeViewVisible: true})}}}/>}renderCustomThemeView() {return (<CustomTheme visible={this.state.customThemeViewVisible}{...this.props}onClose={() => {this.setState({customThemeViewVisible: false,})}}/>)}render() {let statusBar = {backgroundColor:this.state.theme.themeColor};let content = this.state.languages.length > 0 ? <ScrollableTabViewtabBarBackgroundColor={this.state.theme.themeColor}tabBarActiveTextColor='#fff'tabBarInactiveTextColor='#333'tabBarUnderlineStyle={{backgroundColor: '#e7e7e7', height: 2}}renderTabBar={() => <ScrollableTabBar/>}>{this.state.languages.map((result, i, arr) => {let lan = arr[i];return lan.checked ?<TrendingTab key={i} tabLabel={lan.name}timeSpan={this.state.timeSpan} {...this.props}>{lan.name}</TrendingTab> : null;})}</ScrollableTabView> : null;let timeSpanView = <PopoverisVisible={this.state.isVisible}fromRect={this.state.buttonRect}placement={'bottom'}contentStyle={{backgroundColor: '#343434', opacity: 0.5}}onClose={() => this.closePopover()}>{timeSpanTextArray.map((result, i, arr) => {return <TouchableOpacity key={i} underlayColor={'transparent'}onPress={() => this.onSelectTimeSpan(arr[i])}><Text style={{fontSize: 18, color: 'white', padding: 8, fontWeight: '400'}}>{arr[i].showText}</Text></TouchableOpacity>})}</Popover>;return <View style={styles.container}><NavigationBartitleView={this.renderTitleView()}leftButton={<View/>}rightButton={ViewUtils.getMoreButton(() => this.refs.moreMenu.open())}statusBar={statusBar}style={this.state.theme.styles.navBar}/>{content}{timeSpanView}{this.renderMoreView()}{this.renderCustomThemeView()}</View>} }class TrendingTab extends Component {constructor(props) {super(props);this.isFavoriteChange = false;this.state = {result: '',isLoading: false,dataSource: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}),favoriteKeys: [],theme:this.props.theme,}}/*** 更新project item收藏狀態(tài)*/flushFavoriteState() {let projectModels = [];let items = this.items;for (let i = 0, len = items.length; i < len; i++) {projectModels.push(new ProjectModel(items[i], Utils.checkFavorite(items[i], this.state.favoriteKeys)))}this.updateState({isLoading: false,dataSource: this.getDataSource(projectModels),})}getDataSource(data) {return this.state.dataSource.cloneWithRows(data);}getFavoriteKeys() {favoriteDao.getFavoriteKeys().then(keys => {if (keys) {this.updateState({favoriteKeys: keys})}this.flushFavoriteState();}).catch(e => {this.flushFavoriteState()})}updateState(dic) {if (!this) return;this.setState(dic);}componentDidMount(): void {this.onLoad(this.props.timeSpan, true)this.listener = DeviceEventEmitter.addListener('favoriteChanged_trending', () => {this.isFavoriteChange = true;})}onUpdateFavorite() {this.getFavoriteKeys();}componentWillUnmount(): void {if (this.listener) {this.listener.remove();}}componentWillReceiveProps(nextProps: Readonly<P>, nextContext: any): void {if (this.isFavoriteChange) {this.isFavoriteChange = false;this.getFavoriteKeys()}else if (nextProps.theme !== this.state.theme) {this.updateState({theme:nextProps.theme,});this.flushFavoriteState()}}getFetchUrl(timeSpan, category) {return API_URL + category + '?' + timeSpan.searchText}onLoad(timeSpan, isRefresh) {this.updateState({isLoading: true});let url = this.getFetchUrl(timeSpan, this.props.tabLabel)dataRespository.fetchRepository(url).then(result => {this.items = result && result.items ? result.items : result ? result : [];this.getFavoriteKeys();if (!this.items || isRefresh && result && result.update_date && !dataRespository.checkData(result.update_date)) {return dataRespository.fetchNetRepository(url)}}).then(items => {if (!items || items.length === 0) {return;} else {this.items = items;this.getFavoriteKeys();}}).catch(error => {this.updateState({isLoading: false})});}choose(projectModel) {return <TrendingCellonSelect={() => ActionUtils.onSelectRepository({projectModel: projectModel,flag: FLAG_STORAGE.flag_trending,...this.props,parentComponent: this,onUpdateFavorite: ()=>this.onUpdateFavorite(),})}theme={this.props.theme}key={projectModel.item.fullName}onFavorite={(item, isFavorite) => ActionUtils.onFavorite(favoriteDao, item, isFavorite, FLAG_STORAGE.flag_trending)}projectModel={projectModel}/>}onRefresh() {this.onLoad(this.props.timeSpan, true);}render() {return <View style={styles.container}><ListViewdataSource={this.state.dataSource}renderRow={(data) => this.choose(data)}refreshControl={<RefreshControlrefreshing={this.state.isLoading}onRefresh={() => this.onRefresh()}color={this.state.theme.themeColor}tintColor={this.state.theme.themeColor}title={'Loading...'}titleColor={this.state.theme.themeColor}/>}/></View>}}const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},page1: {flex: 1,backgroundColor: 'red'},page2: {flex: 2,backgroundColor: 'green'},image: {width: 22,height: 22},item: {backgroundColor: '#169',height: 100,margin: 15,alignItems: 'center',justifyContent: 'center',},text_my: {color: 'black',fontSize: 20,},text: {color: 'white',fontSize: 20,},indicatorContainer: {alignItems: 'center'},indicator: {color: 'red',margin: 10} });

//收藏頁面 //js/pages/favorite/FavoritePage.js import React, {Component} from 'react'; import {StyleSheet,View,ListView,RefreshControl,DeviceEventEmitter, } from 'react-native'; import NavigationBar from "../../common/NavigationBar" import {FLAG_STORAGE} from "../../expand/dao/DataRepository" import ScrollableTabView, {ScrollableTabBar} from 'react-native-scrollable-tab-view' import RepositoryCell from "../../common/RepositoryCell"; import DescPage from "../popular/DescPage"; import ProjectModel from "../../model/ProjectModel"; import FavoriteDao from "../../expand/dao/FavoriteDao"; import TrendingCell from "../../common/TrendingCell"; import ArrayUtils from "../../util/ArrayUtils"; import ActionUtils from "../../util/ActionUtils"; import MoreMenu, {MORE_MENU} from "../../common/MoreMenu"; import {FLAG_TAB} from "../HomePage"; import ViewUtils from "../../util/ViewUtils"; import BaseComponent from "../BaseComponent"; import CustomTheme from "../My/CustomTheme";export default class FavoritePage extends BaseComponent {constructor(props) {super(props);this.state = {theme: this.props.theme,customThemeViewVisible: false,}}renderMoreView() {let params = {...this.props, fromPage: FLAG_TAB.flag_popularTab}return <MoreMenuref="moreMenu"{...params}menus={[MORE_MENU.Custom_Theme, MORE_MENU.Share,MORE_MENU.About_Author, MORE_MENU.About]}anchorView={() => this.refs.moreMenuButton}onMoreMenuSelect={(e) => {if (e === MORE_MENU.Custom_Theme) {this.setState({customThemeViewVisible: true})}}}/>}renderCustomThemeView() {return (<CustomTheme visible={this.state.customThemeViewVisible}{...this.props}onClose={() => {this.setState({customThemeViewVisible: false,})}}/>)}render() {let statusBar = {backgroundColor: this.state.theme.themeColor};let content = <ScrollableTabViewtabBarBackgroundColor={this.state.theme.themeColor}tabBarActiveTextColor='#fff'tabBarInactiveTextColor='#333'tabBarUnderlineStyle={{backgroundColor: '#e7e7e7', height: 2}}renderTabBar={() => <ScrollableTabBar/>}><FavoriteTab tabLabel='最熱' flag={FLAG_STORAGE.flag_popular} {...this.props}/><FavoriteTab tabLabel='趨勢(shì)' flag={FLAG_STORAGE.flag_trending} {...this.props}/></ScrollableTabView>return <View style={styles.container}><NavigationBartitle={'收藏'}leftButton={<View/>}rightButton={ViewUtils.getMoreButton(() => this.refs.moreMenu.open())}statusBar={statusBar}style={this.state.theme.styles.navBar}/>{content}{this.renderMoreView()}{this.renderCustomThemeView()}</View>} }class FavoriteTab extends Component {constructor(props) {super(props);this.unFavoriteItems = [];this.favoriteDao = new FavoriteDao(this.props.flag);this.state = {result: '',isLoading: false,dataSource: new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}),favoriteKeys: [],theme: this.props.theme,}}componentDidMount(): void {this.onLoad(true)}componentWillReceiveProps(nextProps: Readonly<P>, nextContext: any): void {this.onLoad(false)}updateState(dic) {if (!this) return;this.setState(dic);}getDataSource(data) {return this.state.dataSource.cloneWithRows(data);}onLoad(isShowLoading) {if (isShowLoading) {this.updateState({isLoading: true});}this.favoriteDao.getAllItems().then(items => {let resultData = [];for (let i = 0, len = items.length; i < len; i++) {resultData.push(new ProjectModel(items[i], true));}this.updateState({isLoading: false,dataSource: this.getDataSource(resultData)})}).catch(e => {this.updateState({isLoading: false})})}choose(projectModel) {let CellComponent = this.props.flag === FLAG_STORAGE.flag_popular ? RepositoryCell : TrendingCell;return <CellComponentonSelect={() => ActionUtils.onSelectRepository({flag: FLAG_STORAGE.flag_popular,...this.props,projectModel: projectModel,})}theme={this.props.theme}key={this.props.flag === FLAG_STORAGE.flag_popular ? projectModel.item.id : projectModel.item.fullName}onFavorite={(item, isFavorite) => ActionUtils.onFavorite(this.favoriteDao, item, isFavorite, this.props.flag)}projectModel={projectModel}/>}render() {return <View style={styles.container}><ListViewdataSource={this.state.dataSource}renderRow={(data) => this.choose(data)}enableEmptySections={true}refreshControl={<RefreshControlrefreshing={this.state.isLoading}onRefresh={() => this.onLoad()}color={this.state.theme.themeColor}tintColor={this.state.theme.themeColor}title={'Loading...'}titleColor={this.state.theme.themeColor}/>}/></View>}}const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},page1: {flex: 1,backgroundColor: 'red'},page2: {flex: 2,backgroundColor: 'green'},image: {width: 22,height: 22},item: {backgroundColor: '#169',height: 100,margin: 15,alignItems: 'center',justifyContent: 'center',},text_my: {color: 'black',fontSize: 20,},text: {color: 'white',fontSize: 20,},indicatorContainer: {alignItems: 'center'},indicator: {color: 'red',margin: 10} });

//js/pages/My/MyPage.js import React, {Component} from 'react'; import {StyleSheet,Text,View,ScrollView,TouchableHighlight,Image, } from 'react-native'; import NavigationBar from "../../common/NavigationBar"; import GlobalStyles from "../../../res/styles/GlobalStyles" import ViewUtils from "../../util/ViewUtils"; import CustomKeyPage from "./CustomKeyPage"; import {FLAG_LANGUAGE} from "../../expand/dao/LanguageDao"; import SortKeyPage from "./SortKeyPage"; import AboutMePage from "./about/AboutMePage"; import AboutPage from "./about/AboutPage"; import {MORE_MENU} from "../../common/MoreMenu"; import CustomTheme from "./CustomTheme"; import BaseComponent from "../BaseComponent"; import codePush from "react-native-code-push";export default class MyPage extends BaseComponent {constructor(props) {super(props);this.state = {customThemeViewVisible: false,theme:this.props.theme,}}onClick(tab) {let TargetComponent, params = {...this.props, menuType: tab};switch (tab) {case MORE_MENU.Custom_Language:TargetComponent = CustomKeyPage;params.flag = FLAG_LANGUAGE.flag_language;break;case MORE_MENU.Custom_Key:TargetComponent = CustomKeyPage;params.flag = FLAG_LANGUAGE.flag_key;break;case MORE_MENU.Remove_Key:TargetComponent = CustomKeyPage;params.flag = FLAG_LANGUAGE.flag_key;params.isRemoveKey = true;break;case MORE_MENU.Sort_Language:TargetComponent = SortKeyPage;params.flag = FLAG_LANGUAGE.flag_language;break;case MORE_MENU.Sort_Key:TargetComponent = SortKeyPage;params.flag = FLAG_LANGUAGE.flag_key;break;case MORE_MENU.Custom_Theme:this.setState({customThemeViewVisible: true});break;case MORE_MENU.About_Author:TargetComponent = AboutMePage;break;case MORE_MENU.About:TargetComponent = AboutPage;break;case '更新':// this.update();break;}if (TargetComponent) {this.props.navigator.push({component: TargetComponent,params: params,});}}getItem(tag, icon, text) {return ViewUtils.getSettingItem(() => this.onClick(tag), icon, text, this.state.theme.styles.tabBarSelectedIcon, null);}renderCustomThemeView() {return (<CustomTheme visible={this.state.customThemeViewVisible}{...this.props}onClose={() => {this.setState({customThemeViewVisible: false,})}}/>)}render() {let statusBar = {backgroundColor:this.state.theme.themeColor};let navigatorBar = <NavigationBar title={'我的'}statusBar={statusBar}style={this.state.theme.styles.navBar}/>;return <View style={GlobalStyles.root_container}>{navigatorBar}<ScrollView>{/*最熱管理*/}<TouchableHighlight onPress={() => this.onClick(MORE_MENU.About)}><View style={[styles.item, {height: 90}]}><View style={{flexDirection: 'row', alignItems: 'center'}}><Image source={require('../../../res/images/ic_trending.png')}style={[{width: 40, height: 40, marginRight: 10}, this.state.theme.styles.tabBarSelectedIcon]}/><Text>Github Popular</Text></View><Image style={[{marginRight: 10, height: 22, width: 22,}, this.state.theme.styles.tabBarSelectedIcon]}source={require('../../../res/images/ic_tiaozhuan.png')}/></View></TouchableHighlight><View style={GlobalStyles.line}/>{/*趨勢(shì)管理*/}<Text style={styles.groupTitle}>趨勢(shì)管理</Text><View style={GlobalStyles.line}/>{/*自定義語言*/}{this.getItem(MORE_MENU.Custom_Language, require('./img/ic_custom_language.png'), '自定義語言')}<View style={GlobalStyles.line}/>{/*語言排序*/}{this.getItem(MORE_MENU.Sort_Language, require('./img/ic_sort.png'), '語言排序')}<View style={GlobalStyles.line}/>{/*標(biāo)簽管理*/}<Text style={styles.groupTitle}>標(biāo)簽管理</Text><View style={GlobalStyles.line}/>{/*自定義標(biāo)簽*/}{this.getItem(MORE_MENU.Custom_Key, require('./img/ic_custom_language.png'), '自定義標(biāo)簽')}<View style={GlobalStyles.line}/>{/*標(biāo)簽排序*/}{this.getItem(MORE_MENU.Sort_Key, require('./img/ic_swap_vert.png'), '標(biāo)簽排序')}<View style={GlobalStyles.line}/>{/*標(biāo)簽移除*/}{this.getItem(MORE_MENU.Remove_Key, require('./img/ic_remove.png'), '標(biāo)簽移除')}<View style={GlobalStyles.line}/>{/*設(shè)置*/}<Text style={styles.groupTitle}>設(shè)置</Text><View style={GlobalStyles.line}/>{this.getItem(MORE_MENU.Custom_Theme, require('./img/ic_custom_theme.png'), '自定義主題')}<View style={GlobalStyles.line}/>{this.getItem(MORE_MENU.About_Author, require('./img/ic_insert_emoticon.png'), '關(guān)于作者')}<View style={GlobalStyles.line}/></ScrollView>{this.renderCustomThemeView()}</View>} }const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},item: {flexDirection: 'row',justifyContent: 'space-between',alignItems: 'center',padding: 10,height: 60,backgroundColor: 'white',},groupTitle: {marginLeft: 10,marginTop: 10,marginBottom: 5,fontSize: 12,color: 'gray',} }); //js/pages/My/CustomTheme.js import React, {Component} from 'react'; import {StyleSheet,Text,View,ScrollView,TouchableHighlight,Image,Platform,DeviceEventEmitter,Modal, } from 'react-native';import GlobalStyles from "../../../res/styles/GlobalStyles" import ThemeFactory,{ThemeFlags} from "../../../res/styles/ThemeFactory" import ThemeDao from "../../expand/dao/ThemeDao"; import {ACTION_HOME} from "../HomePage";export default class CustomTheme extends Component {constructor(props) {super(props);this.themeDao = new ThemeDao();}onSelectTheme(themeKey){this.props.onClose();this.themeDao.save(ThemeFlags[themeKey]);DeviceEventEmitter.emit('ACTION_BASE',ACTION_HOME.A_THEME,ThemeFactory.createTheme(ThemeFlags[themeKey]))}getThemeItem(themeKey){return <TouchableHighlight underlayColor={'white'} onPress={()=>this.onSelectTheme(themeKey)} style={{flex: 1}}><View style={[{backgroundColor: ThemeFlags[themeKey]},styles.themeItem]}><Text style={styles.themeText}>{themeKey}</Text></View></TouchableHighlight>}/*** 創(chuàng)建主題列表* @returns {Array}*/renderThemeItems(){const views = [];for (let i=0,keys=Object.keys(ThemeFlags),l=keys.length;i<l;i+=3){const key1 = keys[i], key2 = keys[i + 1], key3 = keys[i + 2];views.push(<View keys={i} style={{flexDirection: 'row'}}>{this.getThemeItem(key1)}{this.getThemeItem(key2)}{this.getThemeItem(key3)}</View>)}return views;}renderContentView(){return <Modal animationType={"slide"}transparent={true}visible={this.props.visible}onRequestClose={() => {this.props.onClose()}}><View style={styles.modalContainer}><ScrollView>{this.renderThemeItems()}</ScrollView></View></Modal>}render() {let view = this.props.visible?<View style={GlobalStyles.root_container}>{this.renderContentView()}</View>:null;return view;} }const styles = StyleSheet.create({container: {flex: 1,backgroundColor: '#F5FCFF',},modalContainer:{flex:1,margin: 10,marginTop: Platform.OS==='ios'?20:10,backgroundColor:'white',borderRadius: 3,shadowColor: 'gray',shadowOffset: {width: 2,height: 2},shadowOpacity: 0.5,shadowRadius: 2,padding: 3},themeItem:{flex:1,height: 120,margin: 3,padding:3,borderRadius:2,alignItems: 'center',justifyContent: 'center',flexDirection: 'row',},themeText:{color:'white',fontWeight: '500',fontSize:16,}});

by最后,如果你看代碼看的想睡覺,那么它是提醒你,換一個(gè)項(xiàng)目看看~
沒有看代碼看睡著的人,只有不夠有吸引力的代碼

轉(zhuǎn)載于:https://www.cnblogs.com/smart-girl/p/10900386.html

總結(jié)

以上是生活随笔為你收集整理的【水滴石穿】imooc_gp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

福利二区视频 | 免费在线观看日韩视频 | 亚洲首页 | 看毛片的网址 | 成年人免费在线 | 国产3p视频| 久久综合久久久久88 | 毛片永久新网址首页 | 在线播放国产一区二区三区 | 国产精品亚洲片在线播放 | 成年人国产视频 | 91久久精品一区 | 99久久超碰中文字幕伊人 | 精品成人a区在线观看 | 成人在线电影观看 | 久久精品视频4 | 久久成人一区二区 | 天天搞天天干天天色 | 美女视频黄在线 | 久久精品国产免费观看 | 国产一区二区三区午夜 | a黄色一级片 | 国产精品久久一区二区三区, | 性色视频在线 | 精品一二区| 亚洲欧美视频网站 | 亚洲精品美女久久17c | 人成午夜视频 | 亚洲人久久 | 国产成人av在线影院 | 激情欧美一区二区免费视频 | 91成人网页版| 久草在线最新免费 | 91人人插| 九九热在线精品 | 免费看十八岁美女 | 久久经典国产视频 | 激情五月激情综合网 | 激情在线五月天 | 免费成人黄色 | 一区二区中文字幕在线播放 | 天天综合操 | 在线免费观看成人 | 人人爱人人添 | 亚洲黄色大片 | 国产精品免费视频一区二区 | 久久你懂得 | 男女激情麻豆 | 成人精品999| 激情影院在线 | 国产精品免费久久久久久久久久中文 | 97超碰人人模人人人爽人人爱 | 午夜精品一区二区三区可下载 | 亚洲在线看 | 免费又黄又爽的视频 | 天天操天天色天天 | 精品亚洲欧美无人区乱码 | 亚洲午夜精品电影 | 2023年中文无字幕文字 | 国产日韩欧美在线一区 | 国产精品久久久久久一二三四五 | 天堂在线成人 | 在线精品视频在线观看高清 | 久艹视频免费观看 | 亚洲精品高清视频在线观看 | 99热99re6国产在线播放 | 成人网看片 | 日韩一区二区免费在线观看 | 一区二区三区免费播放 | 久久久久久蜜av免费网站 | 粉嫩高清一区二区三区 | 五月天亚洲综合小说网 | 成人在线免费观看视视频 | 国产视频日韩视频欧美视频 | 97视频免费播放 | 啪啪资源 | 久久九九久久九九 | 激情欧美一区二区三区免费看 | 日本bbbb摸bbbb | 久久精品在线视频 | 国产一区在线免费 | 免费高清av在线看 | 欧美xxxx性xxxxx高清 | 国产精品九九久久久久久久 | 麻豆国产电影 | www.五月婷| 国产四虎在线 | 日日婷婷夜日日天干 | 国产福利一区二区在线 | 毛片一级免费一级 | 婷婷九月丁香 | 在线免费视频你懂的 | 久久精品99视频 | 久久黄色美女 | 六月久久婷婷 | 国产xxxxx在线观看 | 99精品一级欧美片免费播放 | 精品一区电影国产 | 亚洲精品午夜一区人人爽 | 日本不卡一区二区 | 日韩精品一区二区在线观看 | 在线国产高清 | 亚洲九九| 日韩a免费 | 成人在线免费观看视视频 | 国产色一区 | 国产精品不卡视频 | 国产精品igao视频网入口 | 精品国产精品久久一区免费式 | 六月色丁| 久久久久久久久久影视 | 久久综合九色九九 | 精品国产美女 | 精品国内自产拍在线观看视频 | 日韩国产精品毛片 | 日韩欧美在线观看一区二区 | 91中文在线 | 亚洲国产网站 | 精品一区二区三区四区在线 | 久久久久激情电影 | 国产色拍拍拍拍在线精品 | 国产精品高清在线观看 | 日韩电影久久久 | 欧美一区二区日韩一区二区 | 久草在线免费在线观看 | 黄色一区二区在线观看 | 91视频最新网址 | 免费十分钟 | 日韩综合视频在线观看 | 久章草在线| 成人免费毛片aaaaaa片 | a成人v在线 | 999热视频 | 亚洲日本三级 | 999久久国精品免费观看网站 | 99热播精品 | 亚洲国产剧情av | 久久久久电影网站 | 手机看片中文字幕 | 成人国产网站 | 久久综合九色综合久久久精品综合 | 国产一级视频 | 97精品视频在线播放 | 日日日操 | 亚洲精品欧美精品 | 国产一级免费电影 | 在线免费观看黄 | 国产99自拍 | 久久精品激情 | 欧美aa一级 | 91成人精品视频 | 久草在线视频在线 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 182午夜在线观看 | 成人午夜性影院 | 四虎在线免费观看视频 | 69xx视频| 成人午夜精品福利免费 | 日韩在线视频网 | 9久久精品| 欧美日韩国产色综合一二三四 | 三级黄色a | 菠萝菠萝蜜在线播放 | 国产精在线 | 狠狠色狠狠色综合日日小说 | 在线观看成人小视频 | 成人av免费在线看 | 手机在线看永久av片免费 | 伊人婷婷网 | 麻豆一区在线观看 | 欧美精品在线一区二区 | 久久免费高清 | 深爱激情久久 | 亚洲激精日韩激精欧美精品 | 麻豆视频免费在线 | 国产视频日韩视频欧美视频 | 夜夜狠狠| 亚洲另类视频在线观看 | 特级a老妇做爰全过程 | 色综合欧洲 | 中文字幕在线观看免费高清完整版 | 久久91网 | 又黄又网站 | 色综合网在线 | 91福利影院在线观看 | 麻豆国产露脸在线观看 | 91麻豆精品国产91久久久久久 | 午夜精品一区二区国产 | 久久夜色精品国产欧美一区麻豆 | 91女神的呻吟细腰翘臀美女 | 久99热| 亚洲高清视频在线观看 | 91黄色在线视频 | 成人一区二区三区中文字幕 | 久久中文字幕在线视频 | 精品久久久久久久久久 | 国产一区二区三区免费观看视频 | 手机看片午夜 | 国产精品久久久久久久久久免费 | 国产资源中文字幕 | 99在线精品免费视频九九视 | 亚洲伊人婷婷 | 久久久免费观看视频 | 精品国产视频在线观看 | 天天艹天天 | 精品国产1区二区 | 精品久久福利 | 国产人成精品一区二区三 | www天天干 | 午夜 在线 | 欧美一级日韩三级 | 久久久久久久久久久影院 | 毛片网在线播放 | 国产精品久久久av久久久 | 成 人 黄 色视频免费播放 | 欧美人人爱 | 93久久精品日日躁夜夜躁欧美 | 中文在线a天堂 | 91天堂素人约啪 | 中文字幕av在线播放 | 美女网站在线播放 | 中文av网站 | 欧美伦理电影一区二区 | 在线观看网站你懂的 | 91九色视频国产 | 成人在线免费观看视视频 | 久久久96 | 在线观看免费视频你懂的 | 免费a视频在线 | 99久精品视频 | 久久网站av| 92国产精品久久久久首页 | 国产韩国精品一区二区三区 | 中文字幕乱码一区二区 | 国产精品日韩久久久久 | 天天色官网 | 四虎在线免费观看视频 | 天天爽夜夜爽人人爽曰av | av在线专区| 人人艹人人 | 日韩啪视频| 99久久精品久久亚洲精品 | 91成人午夜 | 天堂入口网站 | 欧美日韩三级在线观看 | 四虎成人免费影院 | 美女黄色网在线播放 | 韩日色视频 | 欧美在线视频一区二区三区 | 91成人在线视频观看 | 国产香蕉久久精品综合网 | 一区二区 不卡 | 成人一级电影在线观看 | 国产一区二区高清视频 | 狠狠操操操 | 在线免费高清 | 欧美韩日在线 | 国产精品18久久久久vr手机版特色 | 色婷婷激情 | 中文字幕乱码日本亚洲一区二区 | 视频一区二区精品 | 在线国产精品一区 | 欧美日韩激情视频8区 | 午夜精品久久久久久久99 | 亚洲国产片色 | 日日摸日日添夜夜爽97 | 美女又爽又黄 | 91手机在线看片 | 久久久国产成人 | 国产免费视频一区二区裸体 | 麻花豆传媒mv在线观看网站 | 中文字幕免费观看全部电影 | 亚洲精品乱码久久久久v最新版 | 久久精品视 | 人人爱夜夜操 | 99精品国产一区二区 | 国产精品一区二区美女视频免费看 | 天天操狠狠操网站 | 中国一级片在线 | 依人成人综合网 | 日韩在线免费高清视频 | 国产原创在线视频 | 中文字幕在线观看完整版 | 丁香5月婷婷 | 亚洲一区二区三区毛片 | 久久久久久国产精品久久 | 婷婷精品国产欧美精品亚洲人人爽 | 婷婷5月色 | 天天操夜夜拍 | 国产人成精品一区二区三 | 91丨九色丨蝌蚪丨老版 | 日本不卡一区二区三区在线观看 | 日韩在线观看av | 日韩欧美国产视频 | 国产日韩三级 | 99综合久久| 美女黄频 | 色婷婷亚洲精品 | 欧美福利片在线观看 | 精品av网站| 久久综合九色综合欧美就去吻 | 五月婷婷色丁香 | 韩日精品在线 | 国产只有精品 | 在线观看第一页 | 日日干夜夜骑 | 成人免费毛片aaaaaa片 | 亚洲精品高清一区二区三区四区 | 国产九色视频在线观看 | 在线视频 亚洲 | 久久国产品 | 国产视频日韩视频欧美视频 | 免费在线观看91 | 欧美日韩国产一区二区在线观看 | 在线观看www视频 | 国产精品18久久久久久不卡孕妇 | 国产精品一区二区白浆 | 人人插人人看 | 日韩大陆欧美高清视频区 | av日韩国产 | 深爱激情综合网 | 国产一性一爱一乱一交 | 性色av免费观看 | 久草久草在线 | 成人黄色小说网 | 久久精品国产美女 | 久久久久久久99精品免费观看 | 亚洲综合精品视频 | 国产午夜精品一区二区三区在线观看 | 黄色片网站免费 | 日韩另类在线 | 精品中文字幕视频 | 日韩av中文字幕在线 | 亚洲一级免费观看 | 在线观看免费视频 | 国产免费专区 | 91精品国自产在线观看 | 国产999精品久久久久久绿帽 | 一区二区三区在线不卡 | 制服丝袜天堂 | 国产精品一区二区你懂的 | 99精品一区二区三区 | 狠狠干美女 | 99久久综合狠狠综合久久 | 黄色av免费看 | 免费三级黄色 | 久久精品99久久 | 在线视频日韩一区 | 国产精品久久久毛片 | 天天色天天艹 | 国产精品一区专区欧美日韩 | 色视频在线观看免费 | 午夜精品久久久久久中宇69 | 欧美日韩在线免费观看视频 | 成人久久综合 | 在线视频观看亚洲 | 在线 视频 一区二区 | 视频在线观看入口黄最新永久免费国产 | 亚洲永久精品在线 | av亚洲产国偷v产偷v自拍小说 | 精品国产一区二区三区四 | 亚洲电影院| 天天射天天操天天色 | 欧美另类美少妇69xxxx | 99一级片 | 欧美一区二区三区在线看 | 精品久操| www久久国产 | 六月丁香婷婷久久 | 日日操夜夜操狠狠操 | 草久视频在线观看 | 亚洲精品女 | 欧美激情精品久久久久久免费 | 蜜臀av在线一区二区三区 | 亚洲精品乱码久久久久久 | 亚洲a成人v | 国模精品一区二区三区 | 中文字幕人成不卡一区 | 亚洲国产无 | 亚洲久草视频 | 久艹视频在线观看 | 五月婷婷在线视频 | 日韩精品视 | 美女久久视频 | 91久久精品一区二区三区 | 国内揄拍国产精品 | 懂色av一区二区在线播放 | 久久a视频| 国产不卡网站 | 最近中文字幕高清字幕在线视频 | 久久国产精品视频观看 | 日韩精品免费 | 日韩在线电影观看 | 成人av动漫在线 | 中文字幕在线观看免费高清电影 | 一区二区丝袜 | 深夜免费小视频 | 免费看一级黄色 | 在线观看视频一区二区三区 | 日本精品久久久久中文字幕 | 国产一区黄色 | 天天色天天爱天天射综合 | 激情欧美国产 | 少妇bbbb| 丁香婷婷深情五月亚洲 | av中文电影| 成人精品一区二区三区中文字幕 | 香蕉视频网址 | 欧美天堂视频在线 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产五月 | 亚洲第一区精品 | 成人福利在线 | 96久久久| 久久精品国产久精国产 | 极品嫩模被强到高潮呻吟91 | 五月天中文字幕mv在线 | 91福利视频免费 | av一级二级| 天天·日日日干 | 色操插 | 国产v欧美 | 99精品国产在热久久下载 | 天天操夜夜操夜夜操 | 天天夜夜亚洲 | 欧美日韩免费观看一区二区三区 | 久久精品一区八戒影视 | 日韩一区在线免费观看 | 99久久久久久久久 | 日韩理论在线观看 | 日韩视频图片 | 六月婷色 | 国产品久精国精产拍 | 国产精品美女久久久久久 | 日韩精品一区二区免费视频 | 在线观看日韩专区 | 日本视频高清 | 成年人在线观看 | 国产999免费视频 | av电影 一区二区 | 在线精品视频免费观看 | 日韩视频二区 | 久久国产日韩 | 久视频在线 | 国产精品四虎 | 国产精品女主播一区二区三区 | 骄小bbw搡bbbb揉bbbb | 综合色亚洲 | 亚洲九九九在线观看 | av一区二区三区在线 | 国产亚洲一区二区在线观看 | 国产成人精品免高潮在线观看 | 麻豆va一区二区三区久久浪 | 日韩精品中文字幕久久臀 | 免费在线观看国产黄 | 伊甸园av在线 | 色中文字幕在线观看 | 在线精品亚洲 | 91精品人成在线观看 | 日韩中文字幕国产精品 | 日韩av在线免费播放 | 成人va天堂 | 日韩在线观看免费 | 免费看的黄色录像 | 日韩免费大片 | 亚洲男男gaygayxxxgv | 在线免费高清一区二区三区 | 国产一线二线三线性视频 | 日本字幕网 | 91九色网址| 在线看片91| 中文字幕a∨在线乱码免费看 | 欧美综合久久久 | 久久精品久久综合 | 亚洲男男gaygay无套同网址 | 国产精品女人久久久久久 | 五月婷婷狠狠 | 中文字幕 91 | 六月婷婷色 | 久久999久久| 日韩av在线网站 | 国产色拍 | 国产精品每日更新 | 国产精品xxxx18a99 | 久久久久女人精品毛片九一 | 中文字幕在线观看免费高清电影 | 成人在线视频你懂的 | 久久久久久久99 | 亚洲另类久久 | 五月婷婷亚洲 | 91高清视频在线 | 国产精品一区二区在线看 | 色视频网页 | 999久久a精品合区久久久 | 男女精品久久 | 亚洲欧美激情插 | 黄色毛片视频免费观看中文 | 91私密视频 | 午夜精品久久久久久久久久 | 27xxoo无遮挡动态视频 | 99热超碰在线 | 夜又临在线观看 | av在线免费观看黄 | 日韩高清免费无专码区 | 日韩中文在线字幕 | 97视频入口免费观看 | 日韩理论片 | 丁香综合av | 国产黄色免费 | 日韩av影视在线 | 国产黄色在线看 | 国产精品一区一区三区 | 粉嫩av一区二区三区四区 | 欧美污在线观看 | 亚洲涩涩一区 | 国产中文字幕在线看 | 日韩久久一区 | 日韩网站一区 | 国产高清精品在线 | 91大片成人网 | 亚洲欧美国产精品18p | www.神马久久 | 日韩黄色av网站 | 久久久午夜视频 | 蜜臀av性久久久久蜜臀av | 日韩在线观看a | 日韩高清av| 国产精品2019 | 探花视频在线版播放免费观看 | 亚洲最新视频在线 | 亚洲精品永久免费视频 | 中国精品少妇 | 丁香导航 | 国产成人三级在线观看 | 激情欧美日韩一区二区 | 亚洲高清资源 | 99视频国产精品免费观看 | 精品免费国产一区二区三区四区 | 亚洲美女精品区人人人人 | 96视频在线 | 天天草天天操 | 精品中文字幕在线观看 | 欧美日韩伦理一区 | 狠狠干天天 | 亚洲最大av网站 | 欧美黄污视频 | 日韩性网站| 日韩黄色软件 | 在线播放 日韩专区 | 成人黄色影片在线 | 欧美日韩中文在线视频 | 五月婷婷免费 | 欧美大片www | 欧美日韩在线视频一区 | 丁香婷婷久久久综合精品国产 | 国产一级小视频 | 国产美女精品视频免费观看 | 2020天天干夜夜爽 | 日本精品午夜 | 久99久中文字幕在线 | 国产99久久精品一区二区永久免费 | 最新日韩视频 | 欧美日韩伦理在线 | 国产玖玖精品视频 | 久久久免费高清视频 | 婷婷色亚洲 | 麻豆va一区二区三区久久浪 | 园产精品久久久久久久7电影 | 久久精品99久久久久久2456 | 久久午夜精品影院一区 | 日韩午夜在线观看 | 精品国产一区二区三区久久久久久 | 日韩高清av在线 | 色婷婷色 | 日韩成人免费电影 | 日韩av电影中文字幕在线观看 | 91人人人 | 国产精品二区三区 | 国产亚洲精品久久久久久移动网络 | 精品免费视频123区 午夜久久成人 | 日本久久免费电影 | 久久99国产精品二区护士 | 99久免费精品视频在线观看 | 日本三级大片 | 国产一级免费av | 免费看的黄色的网站 | 欧美日韩视频网站 | 一区二区视频在线免费观看 | 最近2019中文免费高清视频观看www99 | 安徽妇搡bbbb搡bbbb | 91亚洲精| 国产视频精品免费 | 亚洲精品影视在线观看 | 99国产在线观看 | www成人av | 免费视频色 | 手机成人免费视频 | 色无五月 | 色婷婷狠狠干 | 国产精品久久久久久久久久不蜜月 | 欧美午夜寂寞影院 | 日本一区二区三区视频在线播放 | 久久免费观看视频 | 国产最新91| 国产va在线观看免费 | 日韩午夜大片 | 日韩欧美高清视频在线观看 | 欧美一级片在线观看视频 | 欧美日韩一区二区三区不卡 | 国产涩涩在线观看 | 欧美一二三专区 | 三上悠亚一区二区在线观看 | 久久久午夜电影 | 国产一区二区影院 | 香蕉97视频观看在线观看 | 亚洲一级片免费观看 | 久久婷婷色 | 日韩3区 | 国产又粗又猛又色又黄网站 | 亚洲精品国产精品国自产在线 | 精品久久在线 | 久久久一本精品99久久精品 | 99视频在线精品国自产拍免费观看 | 欧美综合干| 国产又粗又硬又长又爽的视频 | 狠狠干狠狠艹 | 亚洲综合一区二区精品导航 | 久久综合色影院 | 99久e精品热线免费 99国产精品久久久久久久久久 | 日韩av一区二区三区四区 | 婷婷六月天在线 | 久久视频二区 | 91九色在线视频 | 青草视频在线看 | 女人高潮特级毛片 | 亚洲日本韩国一区二区 | 色成人亚洲网 | 欧美日韩有码 | 黄色91免费观看 | 久久精品一区二区三区中文字幕 | 免费看黄色大全 | 中文字幕有码在线播放 | 久草在线官网 | 午夜精品久久久久 | 日韩高清久久 | 中文字幕在线播放日韩 | 国产美女视频免费 | 97人人模人人爽人人少妇 | 亚洲日本在线一区 | 超碰97中文| 久久久久久久久久影院 | 久久免费电影网 | 成人黄色免费在线观看 | 五月综合 | 久久一区国产 | 尤物九九久久国产精品的分类 | 国产精品第二页 | 五月天综合网站 | 色网址99 | 热久久99这里有精品 | 99精品欧美一区二区三区 | 中文字幕一区二区三区在线观看 | 免费黄色看片 | 午夜精品久久久99热福利 | 亚洲伊人婷婷 | 一二三区av | 日日夜夜噜 | 亚洲国产合集 | 国产96精品| 国产精品久久久久久久电影 | av 在线观看| 国产精品成人av久久 | 蜜臀av性久久久久蜜臀av | 精品国产欧美一区二区 | 婷婷色资源 | 国产精品九九九九九 | 91秒拍国产福利一区 | 香蕉视频久久 | 狠狠地操 | 五月激情av | 中文在线字幕免费观看 | 免费高清在线观看成人 | 久草视频首页 | 在线有码中文字幕 | 国产裸体视频bbbbb | 免费黄a大片| 三级av在线 | 天天插狠狠插 | 国产日产亚洲精华av | 日韩精品一区二区在线观看 | 欧美一级特黄aaaaaa大片在线观看 | 青青射 | 天天艹 | 最新精品国产 | 国产乱对白刺激视频在线观看女王 | 91视频观看免费 | 国产高清视频在线播放 | 国产91学生粉嫩喷水 | 婷婷色网视频在线播放 | 国产精品资源在线 | 久久国产精品二国产精品中国洋人 | 亚洲2019精品| 欧美色888| 日韩色在线观看 | 免费看黄的 | 国产精品久久久999 国产91九色视频 | 国产精品video | 亚洲国产精品成人精品 | 91精品国产欧美一区二区 | 天天爱综合 | 福利视频 | 91tv国产成人福利 | 精油按摩av | 精品福利网站 | 丁香五月亚洲综合在线 | www.色com| 丝袜美腿在线播放 | 久久新视频 | 国产资源精品在线观看 | 免费h精品视频在线播放 | 午夜久久久精品 | 玖玖视频免费在线 | 欧美成人精品欧美一级乱 | 国产精品自在线拍国产 | 国产自产在线视频 | 在线观看中文 | 精品产品国产在线不卡 | 国产亚洲高清视频 | 高清av网站 | 国产999在线 | 成人在线播放免费观看 | 久久国产精品99久久人人澡 | 六月丁香在线观看 | 亚洲精品视频大全 | 一本一本久久a久久精品综合 | 中文字幕精品三级久久久 | 久久精品高清视频 | av资源免费在线观看 | av短片在线 | 久草免费在线视频观看 | 国产高清在线免费观看 | 国产韩国精品一区二区三区 | 精品国产一区二区三区在线 | 国产在线观看免费av | 久久免费视频在线 | 免费高清在线视频一区· | www夜夜| 最新色站 | 四虎影视国产精品免费久久 | 中文字幕一区二区三区在线视频 | 69精品人人人人 | 天天干,狠狠干 | 999成人国产 | 精品亚洲午夜久久久久91 | 成年人在线免费看片 | 香蕉久草在线 | a天堂中文在线 | 日本精品久久久久中文字幕 | 四虎成人精品在永久免费 | 欧美巨大荫蒂茸毛毛人妖 | 精品亚洲一区二区三区 | 亚洲高清在线观看视频 | 成人试看120秒 | 蜜臀av一区二区 | 国产xxxx性hd极品 | 国产精品色| 香蕉看片 | av三级在线免费观看 | 国产一级黄色av | 国产视频在线一区二区 | 一区二区三高清 | 色中文字幕在线观看 | 三级av免费| 啪嗒啪嗒免费观看完整版 | 亚洲成人网在线 | 久久九九精品 | 天天操天天舔天天干 | 搡bbbb搡bbb视频| 国产精品第二页 | 天天爱天天射 | 狠狠躁夜夜躁人人爽视频 | 亚洲天堂网站视频 | 亚洲免费精品视频 | 最新av电影网站 | 国产精品2019 | 国产99久久 | 91精品色| 久久国产麻豆 | 精品久久一二三区 | 亚洲第一香蕉视频 | 午夜国产在线 | 亚洲欧美婷婷六月色综合 | 国产精品不卡一区 | 亚洲一区视频免费观看 | 制服丝袜在线91 | 三级av免费| 九9热这里真品2 | av福利电影 | 国产91精品久久久久 | 久久电影国产免费久久电影 | 色综合天天综合网国产成人网 | 香蕉视频在线网站 | 久久人人爽人人爽人人片av软件 | 97国产一区| 国产 日韩 在线 亚洲 字幕 中文 | a在线视频v视频 | 狠狠色综合欧美激情 | 91av在线精品 | 亚洲天堂色婷婷 | 欧美综合色在线图区 | 黄色国产精品 | 中文字幕在线影院 | 日韩av一区二区三区 | 91亚洲狠狠婷婷综合久久久 | 日韩大片在线免费观看 | 国产精品 9999 | av超碰在线 | 国产精品免费高清 | 九九免费精品视频在线观看 | 在线观看视频免费播放 | 国产永久免费高清在线观看视频 | 西西4444www大胆无视频 | 国产精品久久久久久久久久久久久 | 日本久久久久久久久久久 | 人人看人人做人人澡 | 在线观看视频h | 久色伊人| 色婷婷狠狠18| 亚洲 欧美日韩 国产 中文 | 婷婷夜夜 | 九九精品久久久 | 有没有在线观看av | 日韩欧美一区二区在线 | 国产流白浆高潮在线观看 | 日韩影视大全 | 久久综合五月天婷婷伊人 | 在线观看免费高清视频大全追剧 | 久久综合久久综合久久综合 | 天堂av一区二区 | 天天草网站 | 国产在线精品一区二区 | 中文字幕中文字幕在线一区 | 最近能播放的中文字幕 | 日韩性xxxx | av一级黄| 国产色综合天天综合网 | 永久免费观看视频 | 欧美二区三区91 | .精品久久久麻豆国产精品 亚洲va欧美 | 欧美伊人网 | 蜜桃传媒一区二区 | 天天操天天操天天操天天操天天操天天操 | 久久看片网站 | 2019精品手机国产品在线 | 日日爽视频 | 久草网在线视频 | 国产免费黄色 | 欧美日韩国产二区 | 99在线精品观看 | 久久久久久久久久久久久国产精品 | 狠狠88综合久久久久综合网 | 狠狠色丁香婷婷综合久小说久 | 国产精品一区二区白浆 | 狠狠色噜噜狠狠狠狠2021天天 | 精品在线免费观看 | 91粉色视频 | 日本中文字幕在线播放 | 亚洲国产精品一区二区尤物区 | 日韩在线观看视频中文字幕 | 久久国产精品成人免费浪潮 | 国产精品婷婷午夜在线观看 | 久久男人影院 | 激情欧美一区二区免费视频 | 奇米网8888 | 中文字幕在线网址 | 欧美精品一区二区在线播放 | 国产精品久久视频 | 亚洲免费在线视频 | 亚洲最大av网站 | 日韩精品视频免费专区在线播放 | 日韩视频中文字幕 | 日日碰狠狠添天天爽超碰97久久 | 成人在线视频免费观看 | 韩国精品在线 | 最新av观看| www.天天干.com | 99久久婷婷国产综合亚洲 | 免费在线观看成人 | 婷婷六月综合网 | 最新真实国产在线视频 | 国产99精品在线观看 | 欧美怡红院视频 | 亚洲男男gⅴgay双龙 | 又爽又黄又刺激的视频 | 久久视频| 久视频在线播放 | 亚洲精品在线一区二区三区 | 亚洲日本一区二区在线 | 一区 二区电影免费在线观看 | 国产成人a亚洲精品 | 欧美日韩一区二区三区在线免费观看 | 日本中文字幕在线电影 | 久久九九视频 | 久久新 | 日韩精品久久久久久久电影99爱 | 亚洲成人黄色 | 中文字幕在线观看视频一区二区三区 | a视频在线观看免费 | 精品99免费视频 | 99在线热播精品免费99热 | 久久久国产网站 | 久久天天躁狠狠躁夜夜不卡公司 | 亚洲欧洲视频 | 久草精品视频 | 欧洲一区精品 | 欧美成人精品三级在线观看播放 | 337p欧美| 中文字幕在线日 | 日本性生活免费看 | 精品国产91亚洲一区二区三区www | 在线观看视频一区二区三区 | 成人a视频 | 伊人久久一区 | 特级西西444www大胆高清无视频 | 中文字幕免费在线 | 久久视频国产 | 久久免费一级片 | 久久区二区 | 久艹视频在线观看 | 国产精品毛片久久 | 丁香在线 | 中文字幕视频网站 | 91在线精品观看 | 日日夜夜噜噜噜 | 欧美aa一级 | 国产精品精品 | 亚洲专区一二三 | 国产三级在线播放 | 中文字幕在线观看第一页 | 免费观看av | 色婷久久 | 97自拍超碰 | 97超级碰碰碰碰久久久久 | 日本精品一区二区在线观看 | 在线观看免费黄色 | 欧美成年人在线观看 | 99久久精品久久亚洲精品 | 欧美激情视频三区 | 日韩美一区二区三区 | 99热国产在线中文 | 国产精品1区2区3区 久久免费视频7 | 国产99区 | 在线久热 | 国产成人三级一区二区在线观看一 | 久久精品中文字幕一区二区三区 | 久人人 | 久久亚洲影院 | 激情婷婷久久 | 久久久久激情电影 | 日韩av中文字幕在线 | 天天爽天天摸 | 五月导航 | 五月婷婷视频在线 | 国产做a爱一级久久 | 国产精品免费观看在线 | 99中文字幕在线观看 | 91中文视频 | 免费午夜在线视频 | 91精品久久久久久久91蜜桃 | 久久视频国产 | 久久久久久久久久福利 | 999视频在线播放 | 亚洲精品乱码久久久久久按摩 | 久久免费看av| 精品91| 中文字幕在线看视频 | 韩国一区二区三区在线观看 | 一区二区三区免费在线观看视频 | av免费看网站 | 色婷婷在线播放 | 51久久成人国产精品麻豆 | 日本久久电影 | 人人射人人澡 | 国产精品一区二区美女视频免费看 | 亚洲综合五月 | 中文字幕在线播出 | 中文字幕色综合网 | 国产精品久久久久久久久久尿 | 国产一级不卡毛片 | 在线播放精品一区二区三区 | 超碰官网 | 麻豆国产精品视频 | 丁香久久综合 | 日本高清中文字幕有码在线 | 激情 一区二区 | 久久99操| 最新在线你懂的 | 久久国产精品影片 |