3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TouTiao开源项目 分析笔记10 实现通用普通文章片段页面

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TouTiao开源项目 分析笔记10 实现通用普通文章片段页面 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.RxJava的Observable數據操作符總結

1.1.Map操作符

  Map操作符對原始Observable發射的沒一項數據應用一個你選擇的函數,

  然后返回一個發射這些結果的Observable。

  簡單例子:

private void testMap() { String[]items = {"just1","just2","just3","just4","just5","just6"}; Observable<String> myObservable = Observable.from(items) .map(new Func1<String, String>() { @Override public String call(String s) { return mapInfo(s); } }); Subscriber<String> mySubscriber = new Subscriber<String>() { @Override public void onNext(String s) { System.out.println("onNext................."+s); } @Override public void onCompleted() { System.out.println("onCompleted................."); } @Override public void onError(Throwable e) { System.out.println("onError...................."); } }; myObservable.subscribe(mySubscriber); }

  里面定義的函數為:

private String mapInfo(String s){ return s+" had mapped;"; }

  運行結果:

  

?

?

1.2.cast操作符

  cast操作符將原始Observable發射的每一項數據都強制轉換為一個指定的類型,然后再發射數據,它是map的

  一個特殊版本。

  注意:所相互轉換的類之間需要存在某種關系,如繼承、實現。

  簡單例子:

    List<Machine> items = new ArrayList<>();
for (int i=0;i<3;i++){ items.add(new Computer("computer"+i,"material"+i)); } Observable<Computer> myObservable = Observable.from(items) .cast(Computer.class); .cast(TestCastEntity.class); Subscriber<Computer> mySubscriber = new Subscriber<Computer>() { @Override public void onNext(Computer s) { System.out.println("onNext................."+s.name+".........."+s.material); } @Override public void onCompleted() { System.out.println("onCompleted................."); } @Override public void onError(Throwable e) { System.out.println("onError...................."); } }; myObservable.subscribe(mySubscriber); } public class Machine { public String name; public Machine(String name){ this.name = name; } } public class Computer extends Machine{ public String material; public Computer(String name,String material){ super(name); this.material = material; } }

  運行結果:

  

?

?

1.3.encode操作符

encode將一個發射字符串的Observable變換為一個發射字節數組(這個字節數組按照原始字符串中的多字節字符邊界劃分)
的Observable。

?

?

1.4.byLine操作符 

byLine將一個發射字符串的Observable變換為一個按行發射來自原始Observable的字符串的Observable。

?

?

1.5.flatmap操作符

  FlatMap操作符使用一個指定的函數對原始Observable發射的每一項數據執行變換操作。

  這個函數返回一個本身也發射數據的Observable,然后FlatMap合并這些Observable發射的數據。

  最后將合并后的結果當做它自己的數據序列發射。

  FlatMap通過一個函數將原來的數據的每一項進行轉換,并將返回的數據進行Observable包裝。

  然后將所有這些Observable轉換成一個Observable發射。

  所執行的結果可能和原數據items中數據的順序不一致。

  簡單例子:

private void testFlatMap() { Integer[]items = {1,2,3,4,5,6}; Observable<String> myObservable = Observable.from(items) .flatMap(new Func1<Integer, Observable<String>>() { @Override public Observable<String> call(Integer i) { return Observable.just(flatMapInfo(i)); } }); Subscriber<String> mySubscriber = new Subscriber<String>() { @Override public void onNext(String s) { System.out.println("onNext................."+s); } @Override public void onCompleted() { System.out.println("onCompleted................."); } @Override public void onError(Throwable e) { System.out.println("onError...................."); } }; myObservable.subscribe(mySubscriber); } private String flatMapInfo(Integer i){ return "flatmap" + i; }

  運行結果:

  

?

?

1.6.flatMapIterable操作符

  使用iterable作為源數據,再將其轉換成多個observable

  簡單案例:  

   Integer[]items = {1,2,3,4,5,6}; Observable<String> myObservable = Observable.from(items) .flatMapIterable(new Func1<Integer, Iterable<? extends String>>() { @Override public Iterable<String> call(Integer integer) { ArrayList<String> strings = new ArrayList<String>(); strings.add("iterable"+integer); return strings; } }); Subscriber<String> mySubscriber = new Subscriber<String>() { @Override public void onNext(String s) { System.out.println("onNext................."+s); } @Override public void onCompleted() { System.out.println("onCompleted................."); } @Override public void onError(Throwable e) { System.out.println("onError...................."); } }; myObservable.subscribe(mySubscriber);

  運行結果:

  

?

?

1.7.concatMap操作符

  concatMap操作符,它類似于最簡單版本的flatMap,但是它按次序連接而不是合并那些生成的Observables,

  然后產生自己的數據序列。

?

?

1.8.switchMap操作符

  switchMap操作符,它和flatMap很像,除了一點:當原始Observable發射一個新的數據(Observable)時,

  它將取消訂閱并停止監視產生執行之前那個數據的Observable,只監視當前這一個。

  簡單例子:

    Integer[]items = {1,2,3,4,5,6}; Observable<String> myObservable = Observable.from(items) .switchMap(new Func1<Integer, Observable<String>>() { @Override public Observable<String> call(Integer integer) { return Observable.just(integer+"").subscribeOn(Schedulers.newThread()); } }); Subscriber<String> mySubscriber = new Subscriber<String>() { @Override public void onNext(String s) { System.out.println("onNext................."+s); } @Override public void onCompleted() { System.out.println("onCompleted................."); } @Override public void onError(Throwable e) { System.out.println("onError...................."); } }; myObservable.subscribe(mySubscriber);

  運行結果:

  

?

?

1.9.split操作符

split操作符將一個發射字符串的Observable轉換為另一個發射字符串的Observable,
只不過,后者將原始的數據序列當做一個數據流,使用一個正則表達式邊界分割它們,然后合并發射分割的結果。

?

?

1.10.filter過濾操作符

  作用:過濾,篩選,添加對事件是否需要發送的判斷。

  示例用法: 

Observable.just(1, 2, 3, 4, 5, 6)//創建了一個有6個數字的被觀察者.filter(new Predicate<Integer>() {//添加篩選器 @Overridepublic boolean test(Integer integer) throws Exception {
              //對每個事件進行篩選,返回true的保留return integer % 2 == 0;}}).subscribe(getObserver());//這里的觀察者依然不重要

  返回結果==>2,4,6

?

?

1.11.toList()函數

  把循環請求下來的內容生成一個List。

  

?

1.11.參考文獻

  博客:RX操作符之對Observable發射的數據執行變換操作(map/cast/flatmap/switchmap)

  簡書:RxJava2操作符之“Filter”

  簡書:RxJava(四)from和toList


2.基礎Bean類

2.1.實現Parcelable接口的方法

  參考文章:博客-Android中Parcelable接口的用法。

  實現Parcelable就是為了進行序列化,那么,為什么要序列化? 

1)永久性保存對象,保存對象的字節序列到本地文件中;2)通過序列化對象在網絡中傳遞對象;3)通過序列化在進程間傳遞對象。

  Parcelable接口的定義。 

public interface Parcelable {//內容描述接口,基本不用管public int describeContents();//寫入接口函數,打包public void writeToParcel(Parcel dest, int flags);//讀取接口,目的是要從Parcel中構造一個實現了Parcelable的類的實例處理。因為實現類在這里還是不可知的,所以需要用到模板的方式,繼承類名通過模板參數傳入//為了能夠實現模板參數的傳入,這里定義Creator嵌入接口,內含兩個接口函數分別返回單個和多個繼承類實例public interface Creator<T> {public T createFromParcel(Parcel source);public T[] newArray(int size);} }

  實現Parcelable步驟。

1)implements Parcelable2)重寫writeToParcel方法,將你的對象序列化為一個Parcel對象,即:將類的數據寫入外部提供的Parcel中,打包需要傳遞的數據到Parcel容器保存,以便從 Parcel容器獲取數據3)重寫describeContents方法,內容接口描述,默認返回0就可以4)實例化靜態內部對象CREATOR實現接口Parcelable.Creator

  注意點:

其中public static final一個都不能少,內部對象CREATOR的名稱也不能改變,必須全部大寫。
需重寫本接口中的兩個方法:createFromParcel(Parcel in)
實現從Parcel容器中讀取傳遞數據值,封裝成Parcelable對象返回邏輯層,
newArray(int size) 創建一個類型為T,長度為size的數組,僅一句話即可(return new T[size])
,供外部類反序列化本類數組使用。 簡而言之:通過writeToParcel將你的對象映射成Parcel對象,
再通過createFromParcel將Parcel對象映射成你的對象。
也可以將Parcel看成是一個流,通過writeToParcel把對象寫到流里面,
在通過createFromParcel從流里讀取對象,只不過這個過程需要你來實現,
因此寫的順序和讀的順序必須一致。

  簡單案例:

public class MyParcelable implements Parcelable {private int mData;public int describeContents() {return 0;}public void writeToParcel(Parcel out, int flags) {out.writeInt(mData);}public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {public MyParcelable createFromParcel(Parcel in) {return new MyParcelable(in);}public MyParcelable[] newArray(int size) {return new MyParcelable[size];}};private MyParcelable(Parcel in) {mData = in.readInt();}} View Code

?

?

2.2.MultiNewsArticleBean通用的新聞文章Bean類,將數據封裝到里面的content中了。

public class MultiNewsArticleBean {/*** login_status : 0* total_number : 15* has_more : true* post_content_hint : 分享今日新鮮事* show_et_status : 0* feed_flag : 0* action_to_last_stick : 1* message : success* has_more_to_refresh : true* tips : {"display_info":"今日頭條推薦引擎有15條更新","open_url":"","web_url":"","app_name":"今日頭條","package_name":"","display_template":"今日頭條推薦引擎有%s條更新","type":"app","display_duration":2,"download_url":""}*/private int login_status;private int total_number;private boolean has_more;private String post_content_hint;private int show_et_status;private int feed_flag;private int action_to_last_stick;private String message;private boolean has_more_to_refresh;private TipsBean tips;private List<DataBean> data;public int getLogin_status() {return login_status;}public void setLogin_status(int login_status) {this.login_status = login_status;}public int getTotal_number() {return total_number;}public void setTotal_number(int total_number) {this.total_number = total_number;}public boolean isHas_more() {return has_more;}public void setHas_more(boolean has_more) {this.has_more = has_more;}public String getPost_content_hint() {return post_content_hint;}public void setPost_content_hint(String post_content_hint) {this.post_content_hint = post_content_hint;}public int getShow_et_status() {return show_et_status;}public void setShow_et_status(int show_et_status) {this.show_et_status = show_et_status;}public int getFeed_flag() {return feed_flag;}public void setFeed_flag(int feed_flag) {this.feed_flag = feed_flag;}public int getAction_to_last_stick() {return action_to_last_stick;}public void setAction_to_last_stick(int action_to_last_stick) {this.action_to_last_stick = action_to_last_stick;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public boolean isHas_more_to_refresh() {return has_more_to_refresh;}public void setHas_more_to_refresh(boolean has_more_to_refresh) {this.has_more_to_refresh = has_more_to_refresh;}public TipsBean getTips() {return tips;}public void setTips(TipsBean tips) {this.tips = tips;}public List<DataBean> getData() {return data;}public void setData(List<DataBean> data) {this.data = data;}public static class TipsBean {/*** display_info : 今日頭條推薦引擎有15條更新* open_url :* web_url :* app_name : 今日頭條* package_name :* display_template : 今日頭條推薦引擎有%s條更新* type : app* display_duration : 2* download_url :*/private String display_info;private String open_url;private String web_url;private String app_name;private String package_name;private String display_template;private String type;private int display_duration;private String download_url;public String getDisplay_info() {return display_info;}public void setDisplay_info(String display_info) {this.display_info = display_info;}public String getOpen_url() {return open_url;}public void setOpen_url(String open_url) {this.open_url = open_url;}public String getWeb_url() {return web_url;}public void setWeb_url(String web_url) {this.web_url = web_url;}public String getApp_name() {return app_name;}public void setApp_name(String app_name) {this.app_name = app_name;}public String getPackage_name() {return package_name;}public void setPackage_name(String package_name) {this.package_name = package_name;}public String getDisplay_template() {return display_template;}public void setDisplay_template(String display_template) {this.display_template = display_template;}public String getType() {return type;}public void setType(String type) {this.type = type;}public int getDisplay_duration() {return display_duration;}public void setDisplay_duration(int display_duration) {this.display_duration = display_duration;}public String getDownload_url() {return download_url;}public void setDownload_url(String download_url) {this.download_url = download_url;}}public static class DataBean {/*** content : {"log_pb": {"impr_id": "201705182052000100040340182987C4"}, "read_count": 1068313, "media_name": "\u65b0\u534e\u7f51", "ban_comment": 0, "abstract": "\u65b0\u534e\u7f51\u8bb0\u8005 \u738b\u5b50\u6656\u3010\u5b66\u4e60\u8fdb\u884c\u65f6\u301115\u65e5\u95ed\u5e55\u7684\u201c\u4e00\u5e26\u4e00\u8def\u201d\u56fd\u9645\u5408\u4f5c\u9ad8\u5cf0\u8bba\u575b\u53d6\u5f97\u4e86\u4e3e\u4e16\u77a9\u76ee\u7684\u4e30\u7855\u6210\u679c\u3002\u65b0\u534e\u793e\u300a\u5b66\u4e60\u8fdb\u884c\u65f6\u300b\u539f\u521b\u54c1\u724c\u680f\u76ee\u201c\u8bb2\u4e60\u6240\u201d\u4eca\u5929\u63a8\u51fa\u6587\u7ae0\uff0c\u4ece\u201c\u627f\u8bfa\u201d\u548c\u201c\u8df5\u884c\u201d\u7684\u89d2\u5ea6\uff0c\u4e3a\u60a8\u89e3\u8bfb\u4e60\u8fd1\u5e73\u5728\u8fd9\u6b21\u8bba\u575b\u4e0a\u7684\u91cd\u8981\u6f14\u8bb2\u3002", "image_list": [], "ban_bury": 1, "has_video": false, "article_type": 0, "tag": "news_politics", "forward_info": {"forward_count": 34}, "has_m3u8_video": 0, "keywords": "\u591a\u8fb9\u4e3b\u4e49,\u4e1d\u7ef8\u4e4b\u8def,\u5171\u8d62,\u6784\u5efa\u4eba\u7c7b\u547d\u8fd0\u5171\u540c\u4f53,\u4e00\u5e26\u4e00\u8def", "rid": "201705182052000100040340182987C4", "label": "\u7f6e\u9876", "show_portrait_article": false, "user_verified": 0, "aggr_type": 1, "cell_type": 0, "article_sub_type": 0, "bury_count": 0, "title": "\u201c\u4e00\u5e26\u4e00\u8def\u201d\u2014\u2014\u4e60\u8fd1\u5e73\u4e4b\u8bfa", "ignore_web_transform": 1, "source_icon_style": 4, "tip": 0, "hot": 0, "share_url": "http://toutiao.com/group/6421262515992903938/?iid=0&app=news_article", "has_mp4_video": 0, "source": "\u65b0\u534e\u7f51", "comment_count": 14, "article_url": "http://news.xinhuanet.com/politics/2017-05/18/c_1120991501.htm", "filter_words": [], "share_count": 4806, "stick_label": "\u7f6e\u9876", "publish_time": 1495067173, "action_list": [{"action": 1, "extra": {}, "desc": ""}, {"action": 3, "extra": {}, "desc": ""}, {"action": 7, "extra": {}, "desc": ""}, {"action": 9, "extra": {}, "desc": ""}], "has_image": false, "cell_layout_style": 1, "tag_id": 6421262515992903938, "video_style": 0, "verified_content": "", "display_url": "http://toutiao.com/group/6421262515992903938/", "is_stick": true, "large_image_list": [], "item_id": 6421266422789308929, "is_subject": false, "stick_style": 1, "show_portrait": false, "repin_count": 11258, "cell_flag": 11, "user_info": {"verified_content": "", "avatar_url": "http://p3.pstatp.com/thumb/3658/7378365093", "user_id": 4377795668, "name": "\u65b0\u534e\u7f51", "follower_count": 0, "follow": false, "user_auth_info": "", "user_verified": false, "description": "\u4f20\u64ad\u4e2d\u56fd\uff0c\u62a5\u9053\u4e16\u754c\uff1b\u6743\u5a01\u58f0\u97f3\uff0c\u4eb2\u5207\u8868\u8fbe\u3002"}, "source_open_url": "sslocal://profile?uid=4377795668", "level": 0, "like_count": 3, "digg_count": 3, "behot_time": 1495111920, "cursor": 1495111920999, "url": "http://news.xinhuanet.com/politics/2017-05/18/c_1120991501.htm", "preload_web": 0, "user_repin": 0, "label_style": 1, "item_version": 0, "media_info": {"user_id": 4377795668, "verified_content": "", "avatar_url": "http://p2.pstatp.com/large/3658/7378365093", "media_id": 4377795668, "name": "\u65b0\u534e\u7f51", "recommend_type": 0, "follow": false, "recommend_reason": "", "is_star_user": false, "user_verified": false}, "group_id": 6421262515992903938, "middle_image": {}}* code :*/private String content;private String code;public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}} } View Code

  這里用作API調用后返回的所有數據的一個大類,包括了很多雜項。

?

?

2.3.MultiNewsArticleDataBean通用的新聞文章數據Bean類。

  這里將API調用后返回的所有數據中提取了重要的封裝好的一個數據類型。

public class MultiNewsArticleDataBean implements Parcelable {public static final Creator<MultiNewsArticleDataBean> CREATOR = new Creator<MultiNewsArticleDataBean>() {@Overridepublic MultiNewsArticleDataBean createFromParcel(Parcel in) {return new MultiNewsArticleDataBean(in);}@Overridepublic MultiNewsArticleDataBean[] newArray(int size) {return new MultiNewsArticleDataBean[size];}};/*** log_pb : {"impr_id":"20170519112306010003048108480AA6"}* read_count : 156694* media_name : 人民網* ban_comment : 0* abstract : 5月14日,國家主席***在北京人民大會堂舉行宴會,歡迎出席“一帶一路”國際合作高峰論壇的外方代表團團長及嘉賓。***發表致辭,代表中國政府和人民熱烈歡迎各位貴賓的到來。新華社記者 劉衛兵攝孟夏之日,萬物并秀。* ban_bury : 1* has_video : false* article_type : 1* tag : news_politics* forward_info : {"forward_count":8}* has_m3u8_video : 0* keywords : 自由貿易區,共同體,國際合作高峰論壇,自由化,祝酒辭* rid : 20170519112306010003048108480AA6* label : 置頂* show_portrait_article : false* user_verified : 0* aggr_type : 1* cell_type : 0* article_sub_type : 1* bury_count : 0* title : ***“一帶一路”高峰論壇系列講話十大高頻詞* ignore_web_transform : 1* source_icon_style : 5* tip : 0* hot : 0* share_url : http://toutiao.com/group/6421272334078247169/?iid=0&app=news_article* has_mp4_video : 0* source : 人民網* comment_count : 2* article_url : http://m2.people.cn/r/MV8xXzI5Mjg0OTA4XzQxMTgzN18xNDk1MDg3NTQx* filter_words : []* share_count : 972* stick_label : 置頂* publish_time : 1495087541* action_list : [{"action":1,"extra":{},"desc":""},{"action":3,"extra":{},"desc":""},{"action":7,"extra":{},"desc":""},{"action":9,"extra":{},"desc":""}]* has_image : true* cell_layout_style : 1* tag_id : 6421272334078247000* video_style : 0* verified_content :* display_url : http://toutiao.com/group/6421272334078247169/* is_stick : true* large_image_list : []* item_id : 6421353649858938000* is_subject : false* stick_style : 1* show_portrait : false* repin_count : 2062* cell_flag : 11* user_info : {"verified_content":"","avatar_url":"http://p3.pstatp.com/thumb/ca400072481685ad43b","user_id":50502346173,"name":"人民網","follower_count":0,"follow":false,"user_auth_info":"","user_verified":false,"description":""}* source_open_url : sslocal://profile?uid=50502346173* level : 0* digg_count : 0* behot_time : 1495164186* article_alt_url : http://toutiao.com/group/article/6421272334078247169/* cursor : 1495164186999* url : http://m2.people.cn/r/MV8xXzI5Mjg0OTA4XzQxMTgzN18xNDk1MDg3NTQx* preload_web : 0* user_repin : 0* label_style : 1* item_version : 0* media_info : {"user_id":50502346173,"verified_content":"","avatar_url":"http://p3.pstatp.com/large/ca400072481685ad43b","media_id":50502346173,"name":"人民網","recommend_type":0,"follow":false,"recommend_reason":"","is_star_user":false,"user_verified":false}* group_id : 6421272334078247000* middle_image : {"url":"http://p9.pstatp.com/list/300x196/207c000e549a17910c1c.webp","width":400,"url_list":[{"url":"http://p9.pstatp.com/list/300x196/207c000e549a17910c1c.webp"},{"url":"http://pb1.pstatp.com/list/300x196/207c000e549a17910c1c.webp"},{"url":"http://pb3.pstatp.com/list/300x196/207c000e549a17910c1c.webp"}],"uri":"list/207c000e549a17910c1c","height":225}* gallary_image_count : 1* video_id : d4715d18819e4acc8b3012374dd4588f* video_detail_info : {"group_flags":32832,"video_type":0,"video_preloading_flag":1,"video_url":[],"direct_play":1,"detail_video_large_image":{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee","width":580,"url_list":[{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb9.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb1.pstatp.com/video1609/17600009fb1bb36ce3ee"}],"uri":"video1609/17600009fb1bb36ce3ee","height":326},"show_pgc_subscribe":1,"video_third_monitor_url":"","video_id":"d4715d18819e4acc8b3012374dd4588f","video_watching_count":0,"video_watch_count":3502527}* image_list : []* video_duration : 503* group_flags : 32832* filter_words : [{"id":"8:0","name":"重復、舊聞","is_selected":false},{"id":"9:1","name":"內容質量差","is_selected":false},{"id":"5:824751570","name":"來源:穹娛剪輯","is_selected":false},{"id":"1:548663395","name":"社會視頻","is_selected":false},{"id":"6:15613","name":"銀行","is_selected":false}]* action_list : [{"action":1,"extra":{},"desc":""},{"action":3,"extra":{},"desc":""},{"action":7,"extra":{},"desc":""},{"action":9,"extra":{},"desc":""}]* large_image_list : [{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee","width":580,"url_list":[{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb9.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb1.pstatp.com/video1609/17600009fb1bb36ce3ee"}],"uri":"video1609/17600009fb1bb36ce3ee","height":326}]* like_count : 4787*/private LogPbBean log_pb;private int read_count;private String media_name;private int ban_comment;@SerializedName("abstract")private String abstractX;private int ban_bury;private boolean has_video;private int article_type;private String tag;private ForwardInfoBean forward_info;// private boolean has_m3u8_video;private String keywords;private String rid;private String label;private boolean show_portrait_article;private int user_verified;private int aggr_type;private int cell_type;private int article_sub_type;private int bury_count;private String title;private int ignore_web_transform;private int source_icon_style;private int tip;private int hot;private String share_url;private int has_mp4_video;private String source;private int comment_count;private String article_url;private int share_count;private String stick_label;private int publish_time;private boolean has_image;private int cell_layout_style;private long tag_id;private int video_style;private String verified_content;private String display_url;// private boolean is_stick;private long item_id;private boolean is_subject;private int stick_style;private boolean show_portrait;private int repin_count;private int cell_flag;private UserInfoBean user_info;private String source_open_url;private int level;private int digg_count;private String behot_time;private String article_alt_url;private long cursor;private String url;private int preload_web;private int user_repin;private int label_style;private int item_version;private MediaInfoBean media_info;private long group_id;private MiddleImageBean middle_image;private int gallary_image_count;private String video_id;private VideoDetailInfoBean video_detail_info;private int video_duration;private int group_flags;private int like_count;private List<ImageListBean> image_list;public MultiNewsArticleDataBean() {}protected MultiNewsArticleDataBean(Parcel in) {read_count = in.readInt();media_name = in.readString();ban_comment = in.readInt();abstractX = in.readString();ban_bury = in.readInt();has_video = in.readByte() != 0;article_type = in.readInt();tag = in.readString(); // has_m3u8_video = in.readByte() != 0;keywords = in.readString();rid = in.readString();label = in.readString();show_portrait_article = in.readByte() != 0;user_verified = in.readInt();aggr_type = in.readInt();cell_type = in.readInt();article_sub_type = in.readInt();bury_count = in.readInt();title = in.readString();ignore_web_transform = in.readInt();source_icon_style = in.readInt();tip = in.readInt();hot = in.readInt();share_url = in.readString();has_mp4_video = in.readInt();source = in.readString();comment_count = in.readInt();article_url = in.readString();share_count = in.readInt();stick_label = in.readString();publish_time = in.readInt();has_image = in.readByte() != 0;cell_layout_style = in.readInt();tag_id = in.readLong();video_style = in.readInt();verified_content = in.readString();display_url = in.readString();item_id = in.readLong();is_subject = in.readByte() != 0;stick_style = in.readInt();show_portrait = in.readByte() != 0;repin_count = in.readInt();cell_flag = in.readInt();source_open_url = in.readString();level = in.readInt();digg_count = in.readInt();behot_time = in.readString();article_alt_url = in.readString();cursor = in.readLong();url = in.readString();preload_web = in.readInt();user_repin = in.readInt();label_style = in.readInt();item_version = in.readInt();media_info = in.readParcelable(MediaInfoBean.class.getClassLoader());group_id = in.readLong();gallary_image_count = in.readInt();video_id = in.readString();video_detail_info = in.readParcelable(VideoDetailInfoBean.class.getClassLoader());video_duration = in.readInt();group_flags = in.readInt();like_count = in.readInt();}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeInt(read_count);dest.writeString(media_name);dest.writeInt(ban_comment);dest.writeString(abstractX);dest.writeInt(ban_bury);dest.writeByte((byte) (has_video ? 1 : 0));dest.writeInt(article_type);dest.writeString(tag); // dest.writeByte((byte) (has_m3u8_video ? 1 : 0)); dest.writeString(keywords);dest.writeString(rid);dest.writeString(label);dest.writeByte((byte) (show_portrait_article ? 1 : 0));dest.writeInt(user_verified);dest.writeInt(aggr_type);dest.writeInt(cell_type);dest.writeInt(article_sub_type);dest.writeInt(bury_count);dest.writeString(title);dest.writeInt(ignore_web_transform);dest.writeInt(source_icon_style);dest.writeInt(tip);dest.writeInt(hot);dest.writeString(share_url);dest.writeInt(has_mp4_video);dest.writeString(source);dest.writeInt(comment_count);dest.writeString(article_url);dest.writeInt(share_count);dest.writeString(stick_label);dest.writeInt(publish_time);dest.writeByte((byte) (has_image ? 1 : 0));dest.writeInt(cell_layout_style);dest.writeLong(tag_id);dest.writeInt(video_style);dest.writeString(verified_content);dest.writeString(display_url);dest.writeLong(item_id);dest.writeByte((byte) (is_subject ? 1 : 0));dest.writeInt(stick_style);dest.writeByte((byte) (show_portrait ? 1 : 0));dest.writeInt(repin_count);dest.writeInt(cell_flag);dest.writeString(source_open_url);dest.writeInt(level);dest.writeInt(digg_count);dest.writeString(behot_time);dest.writeString(article_alt_url);dest.writeLong(cursor);dest.writeString(url);dest.writeInt(preload_web);dest.writeInt(user_repin);dest.writeInt(label_style);dest.writeInt(item_version);dest.writeParcelable(media_info, flags);dest.writeLong(group_id);dest.writeInt(gallary_image_count);dest.writeString(video_id);dest.writeParcelable(video_detail_info, flags);dest.writeInt(video_duration);dest.writeInt(group_flags);dest.writeInt(like_count);}@Overridepublic int describeContents() {return 0;}public LogPbBean getLog_pb() {return log_pb;}public void setLog_pb(LogPbBean log_pb) {this.log_pb = log_pb;}public int getRead_count() {return read_count;}public void setRead_count(int read_count) {this.read_count = read_count;}public String getMedia_name() {return media_name;}public void setMedia_name(String media_name) {this.media_name = media_name;}public int getBan_comment() {return ban_comment;}public void setBan_comment(int ban_comment) {this.ban_comment = ban_comment;}public String getAbstractX() {return abstractX;}public void setAbstractX(String abstractX) {this.abstractX = abstractX;}public int getBan_bury() {return ban_bury;}public void setBan_bury(int ban_bury) {this.ban_bury = ban_bury;}public boolean isHas_video() {return has_video;}public void setHas_video(boolean has_video) {this.has_video = has_video;}public int getArticle_type() {return article_type;}public void setArticle_type(int article_type) {this.article_type = article_type;}public String getTag() {return tag;}public void setTag(String tag) {this.tag = tag;}public ForwardInfoBean getForward_info() {return forward_info;}public void setForward_info(ForwardInfoBean forward_info) {this.forward_info = forward_info;}// public boolean getHas_m3u8_video() { // return has_m3u8_video; // }// public void setHas_m3u8_video(boolean has_m3u8_video) { // this.has_m3u8_video = has_m3u8_video; // }public String getKeywords() {return keywords;}public void setKeywords(String keywords) {this.keywords = keywords;}public String getRid() {return rid;}public void setRid(String rid) {this.rid = rid;}public String getLabel() {return label;}public void setLabel(String label) {this.label = label;}public boolean isShow_portrait_article() {return show_portrait_article;}public void setShow_portrait_article(boolean show_portrait_article) {this.show_portrait_article = show_portrait_article;}public int getUser_verified() {return user_verified;}public void setUser_verified(int user_verified) {this.user_verified = user_verified;}public int getAggr_type() {return aggr_type;}public void setAggr_type(int aggr_type) {this.aggr_type = aggr_type;}public int getCell_type() {return cell_type;}public void setCell_type(int cell_type) {this.cell_type = cell_type;}public int getArticle_sub_type() {return article_sub_type;}public void setArticle_sub_type(int article_sub_type) {this.article_sub_type = article_sub_type;}public int getBury_count() {return bury_count;}public void setBury_count(int bury_count) {this.bury_count = bury_count;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getIgnore_web_transform() {return ignore_web_transform;}public void setIgnore_web_transform(int ignore_web_transform) {this.ignore_web_transform = ignore_web_transform;}public int getSource_icon_style() {return source_icon_style;}public void setSource_icon_style(int source_icon_style) {this.source_icon_style = source_icon_style;}public int getTip() {return tip;}public void setTip(int tip) {this.tip = tip;}public int getHot() {return hot;}public void setHot(int hot) {this.hot = hot;}public String getShare_url() {return share_url;}public void setShare_url(String share_url) {this.share_url = share_url;}public int getHas_mp4_video() {return has_mp4_video;}public void setHas_mp4_video(int has_mp4_video) {this.has_mp4_video = has_mp4_video;}public String getSource() {return source;}public void setSource(String source) {this.source = source;}public int getComment_count() {return comment_count;}public void setComment_count(int comment_count) {this.comment_count = comment_count;}public String getArticle_url() {return article_url;}public void setArticle_url(String article_url) {this.article_url = article_url;}public int getShare_count() {return share_count;}public void setShare_count(int share_count) {this.share_count = share_count;}public String getStick_label() {return stick_label;}public void setStick_label(String stick_label) {this.stick_label = stick_label;}public int getPublish_time() {return publish_time;}public void setPublish_time(int publish_time) {this.publish_time = publish_time;}public boolean isHas_image() {return has_image;}public void setHas_image(boolean has_image) {this.has_image = has_image;}public int getCell_layout_style() {return cell_layout_style;}public void setCell_layout_style(int cell_layout_style) {this.cell_layout_style = cell_layout_style;}public long getTag_id() {return tag_id;}public void setTag_id(long tag_id) {this.tag_id = tag_id;}public int getVideo_style() {return video_style;}public void setVideo_style(int video_style) {this.video_style = video_style;}public String getVerified_content() {return verified_content;}public void setVerified_content(String verified_content) {this.verified_content = verified_content;}public String getDisplay_url() {return display_url;}public void setDisplay_url(String display_url) {this.display_url = display_url;}// public boolean is_stick() { // return is_stick; // }// public void setIs_stick(boolean is_stick) { // this.is_stick = is_stick; // }public long getItem_id() {return item_id;}public void setItem_id(long item_id) {this.item_id = item_id;}public boolean is_subject() {return is_subject;}public void setIs_subject(boolean is_subject) {this.is_subject = is_subject;}public int getStick_style() {return stick_style;}public void setStick_style(int stick_style) {this.stick_style = stick_style;}public boolean isShow_portrait() {return show_portrait;}public void setShow_portrait(boolean show_portrait) {this.show_portrait = show_portrait;}public int getRepin_count() {return repin_count;}public void setRepin_count(int repin_count) {this.repin_count = repin_count;}public int getCell_flag() {return cell_flag;}public void setCell_flag(int cell_flag) {this.cell_flag = cell_flag;}public UserInfoBean getUser_info() {return user_info;}public void setUser_info(UserInfoBean user_info) {this.user_info = user_info;}public String getSource_open_url() {return source_open_url;}public void setSource_open_url(String source_open_url) {this.source_open_url = source_open_url;}public int getLevel() {return level;}public void setLevel(int level) {this.level = level;}public int getDigg_count() {return digg_count;}public void setDigg_count(int digg_count) {this.digg_count = digg_count;}public String getBehot_time() {return behot_time;}public void setBehot_time(String behot_time) {this.behot_time = behot_time;}public String getArticle_alt_url() {return article_alt_url;}public void setArticle_alt_url(String article_alt_url) {this.article_alt_url = article_alt_url;}public long getCursor() {return cursor;}public void setCursor(long cursor) {this.cursor = cursor;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public int getPreload_web() {return preload_web;}public void setPreload_web(int preload_web) {this.preload_web = preload_web;}public int getUser_repin() {return user_repin;}public void setUser_repin(int user_repin) {this.user_repin = user_repin;}public int getLabel_style() {return label_style;}public void setLabel_style(int label_style) {this.label_style = label_style;}public int getItem_version() {return item_version;}public void setItem_version(int item_version) {this.item_version = item_version;}public MediaInfoBean getMedia_info() {return media_info;}public void setMedia_info(MediaInfoBean media_info) {this.media_info = media_info;}public long getGroup_id() {return group_id;}public void setGroup_id(long group_id) {this.group_id = group_id;}public MiddleImageBean getMiddle_image() {return middle_image;}public void setMiddle_image(MiddleImageBean middle_image) {this.middle_image = middle_image;}public int getGallary_image_count() {return gallary_image_count;}public void setGallary_image_count(int gallary_image_count) {this.gallary_image_count = gallary_image_count;}public List<ImageListBean> getImage_list() {return image_list;}public void setImage_list(List<ImageListBean> image_list) {this.image_list = image_list;}public String getVideo_id() {return video_id;}public void setVideo_id(String video_id) {this.video_id = video_id;}public VideoDetailInfoBean getVideo_detail_info() {return video_detail_info;}public void setVideo_detail_info(VideoDetailInfoBean video_detail_info) {this.video_detail_info = video_detail_info;}public int getVideo_duration() {return video_duration;}public void setVideo_duration(int video_duration) {this.video_duration = video_duration;}public int getGroup_flags() {return group_flags;}public void setGroup_flags(int group_flags) {this.group_flags = group_flags;}public int getLike_count() {return like_count;}public void setLike_count(int like_count) {this.like_count = like_count;}@Overridepublic String toString() {return "MultiNewsArticleDataBean{" +"log_pb=" + log_pb +", read_count=" + read_count +", media_name='" + media_name + '\'' +", ban_comment=" + ban_comment +", abstractX='" + abstractX + '\'' +", ban_bury=" + ban_bury +", has_video=" + has_video +", article_type=" + article_type +", tag='" + tag + '\'' +", forward_info=" + forward_info + // ", has_m3u8_video=" + has_m3u8_video +", keywords='" + keywords + '\'' +", rid='" + rid + '\'' +", label='" + label + '\'' +", show_portrait_article=" + show_portrait_article +", user_verified=" + user_verified +", aggr_type=" + aggr_type +", cell_type=" + cell_type +", article_sub_type=" + article_sub_type +", bury_count=" + bury_count +", title='" + title + '\'' +", ignore_web_transform=" + ignore_web_transform +", source_icon_style=" + source_icon_style +", tip=" + tip +", hot=" + hot +", share_url='" + share_url + '\'' +", has_mp4_video=" + has_mp4_video +", source='" + source + '\'' +", comment_count=" + comment_count +", article_url='" + article_url + '\'' +", share_count=" + share_count +", stick_label='" + stick_label + '\'' +", publish_time=" + publish_time +", has_image=" + has_image +", cell_layout_style=" + cell_layout_style +", tag_id=" + tag_id +", video_style=" + video_style +", verified_content='" + verified_content + '\'' +", display_url='" + display_url + '\'' +", item_id=" + item_id +", is_subject=" + is_subject +", stick_style=" + stick_style +", show_portrait=" + show_portrait +", repin_count=" + repin_count +", cell_flag=" + cell_flag +", user_info=" + user_info +", source_open_url='" + source_open_url + '\'' +", level=" + level +", digg_count=" + digg_count +", behot_time='" + behot_time + '\'' +", article_alt_url='" + article_alt_url + '\'' +", cursor=" + cursor +", url='" + url + '\'' +", preload_web=" + preload_web +", user_repin=" + user_repin +", label_style=" + label_style +", item_version=" + item_version +", media_info=" + media_info +", group_id=" + group_id +", middle_image=" + middle_image +", gallary_image_count=" + gallary_image_count +", video_id='" + video_id + '\'' +", video_detail_info=" + video_detail_info +", video_duration=" + video_duration +", group_flags=" + group_flags +", like_count=" + like_count +", image_list=" + image_list +'}';}public static class LogPbBean {/*** impr_id : 20170519112306010003048108480AA6*/private String impr_id;public String getImpr_id() {return impr_id;}public void setImpr_id(String impr_id) {this.impr_id = impr_id;}}public static class ForwardInfoBean {/*** forward_count : 8*/private int forward_count;public int getForward_count() {return forward_count;}public void setForward_count(int forward_count) {this.forward_count = forward_count;}}public static class UserInfoBean {/*** verified_content :* avatar_url : http://p3.pstatp.com/thumb/ca400072481685ad43b* user_id : 50502346173* name : 人民網* follower_count : 0* follow : false* user_auth_info :* user_verified : false* description :*/private String verified_content;private String avatar_url;private long user_id;private String name;private int follower_count;private boolean follow;private String user_auth_info;private boolean user_verified;private String description;public String getVerified_content() {return verified_content;}public void setVerified_content(String verified_content) {this.verified_content = verified_content;}public String getAvatar_url() {return avatar_url;}public void setAvatar_url(String avatar_url) {this.avatar_url = avatar_url;}public long getUser_id() {return user_id;}public void setUser_id(long user_id) {this.user_id = user_id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getFollower_count() {return follower_count;}public void setFollower_count(int follower_count) {this.follower_count = follower_count;}public boolean isFollow() {return follow;}public void setFollow(boolean follow) {this.follow = follow;}public String getUser_auth_info() {return user_auth_info;}public void setUser_auth_info(String user_auth_info) {this.user_auth_info = user_auth_info;}public boolean isUser_verified() {return user_verified;}public void setUser_verified(boolean user_verified) {this.user_verified = user_verified;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}}public static class MediaInfoBean implements Parcelable {public static final Creator<MediaInfoBean> CREATOR = new Creator<MediaInfoBean>() {@Overridepublic MediaInfoBean createFromParcel(Parcel in) {return new MediaInfoBean(in);}@Overridepublic MediaInfoBean[] newArray(int size) {return new MediaInfoBean[size];}};/*** user_id : 50502346173* verified_content :* avatar_url : http://p3.pstatp.com/large/ca400072481685ad43b* media_id : 50502346173* name : 人民網* recommend_type : 0* follow : false* recommend_reason :* is_star_user : false* user_verified : false*/private long user_id;private String verified_content;private String avatar_url;private String media_id;private String name;private int recommend_type;private boolean follow;private String recommend_reason;private boolean is_star_user;private boolean user_verified;public MediaInfoBean() {}protected MediaInfoBean(Parcel in) {user_id = in.readLong();verified_content = in.readString();avatar_url = in.readString();media_id = in.readString();name = in.readString();recommend_type = in.readInt();follow = in.readByte() != 0;recommend_reason = in.readString();is_star_user = in.readByte() != 0;user_verified = in.readByte() != 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeLong(user_id);dest.writeString(verified_content);dest.writeString(avatar_url);dest.writeString(media_id);dest.writeString(name);dest.writeInt(recommend_type);dest.writeByte((byte) (follow ? 1 : 0));dest.writeString(recommend_reason);dest.writeByte((byte) (is_star_user ? 1 : 0));dest.writeByte((byte) (user_verified ? 1 : 0));}@Overridepublic int describeContents() {return 0;}public long getUser_id() {return user_id;}public void setUser_id(long user_id) {this.user_id = user_id;}public String getVerified_content() {return verified_content;}public void setVerified_content(String verified_content) {this.verified_content = verified_content;}public String getAvatar_url() {return avatar_url;}public void setAvatar_url(String avatar_url) {this.avatar_url = avatar_url;}public String getMedia_id() {return media_id;}public void setMedia_id(String media_id) {this.media_id = media_id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getRecommend_type() {return recommend_type;}public void setRecommend_type(int recommend_type) {this.recommend_type = recommend_type;}public boolean isFollow() {return follow;}public void setFollow(boolean follow) {this.follow = follow;}public String getRecommend_reason() {return recommend_reason;}public void setRecommend_reason(String recommend_reason) {this.recommend_reason = recommend_reason;}public boolean isIs_star_user() {return is_star_user;}public void setIs_star_user(boolean is_star_user) {this.is_star_user = is_star_user;}public boolean isUser_verified() {return user_verified;}public void setUser_verified(boolean user_verified) {this.user_verified = user_verified;}}public static class MiddleImageBean {/*** url : http://p9.pstatp.com/list/300x196/207c000e549a17910c1c.webp* width : 400* url_list : [{"url":"http://p9.pstatp.com/list/300x196/207c000e549a17910c1c.webp"},{"url":"http://pb1.pstatp.com/list/300x196/207c000e549a17910c1c.webp"},{"url":"http://pb3.pstatp.com/list/300x196/207c000e549a17910c1c.webp"}]* uri : list/207c000e549a17910c1c* height : 225*/private String url;private int width;private String uri;private int height;private List<UrlListBean> url_list;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public int getWidth() {return width;}public void setWidth(int width) {this.width = width;}public String getUri() {return uri;}public void setUri(String uri) {this.uri = uri;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public List<UrlListBean> getUrl_list() {return url_list;}public void setUrl_list(List<UrlListBean> url_list) {this.url_list = url_list;}public static class UrlListBean {/*** url : http://p9.pstatp.com/list/300x196/207c000e549a17910c1c.webp*/private String url;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}}}public static class VideoDetailInfoBean implements Parcelable {public static final Creator<VideoDetailInfoBean> CREATOR = new Creator<VideoDetailInfoBean>() {@Overridepublic VideoDetailInfoBean createFromParcel(Parcel in) {return new VideoDetailInfoBean(in);}@Overridepublic VideoDetailInfoBean[] newArray(int size) {return new VideoDetailInfoBean[size];}};/*** group_flags : 32832* video_type : 0* video_preloading_flag : 1* video_url : []* direct_play : 1* detail_video_large_image : {"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee","width":580,"url_list":[{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb9.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb1.pstatp.com/video1609/17600009fb1bb36ce3ee"}],"uri":"video1609/17600009fb1bb36ce3ee","height":326}* show_pgc_subscribe : 1* video_third_monitor_url :* video_id : d4715d18819e4acc8b3012374dd4588f* video_watching_count : 0* video_watch_count : 3502527*/private int group_flags;private int video_type;private int video_preloading_flag;private int direct_play;private DetailVideoLargeImageBean detail_video_large_image;private int show_pgc_subscribe;private String video_third_monitor_url;private String video_id;private int video_watching_count;private int video_watch_count;private List<?> video_url;public VideoDetailInfoBean(Parcel in) {group_flags = in.readInt();video_type = in.readInt();video_preloading_flag = in.readInt();direct_play = in.readInt();detail_video_large_image = in.readParcelable(DetailVideoLargeImageBean.class.getClassLoader());show_pgc_subscribe = in.readInt();video_third_monitor_url = in.readString();video_id = in.readString();video_watching_count = in.readInt();video_watch_count = in.readInt();}public VideoDetailInfoBean() {}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeInt(group_flags);dest.writeInt(video_type);dest.writeInt(video_preloading_flag);dest.writeInt(direct_play);dest.writeParcelable(detail_video_large_image, flags);dest.writeInt(show_pgc_subscribe);dest.writeString(video_third_monitor_url);dest.writeString(video_id);dest.writeInt(video_watching_count);dest.writeInt(video_watch_count);}@Overridepublic int describeContents() {return 0;}public int getGroup_flags() {return group_flags;}public void setGroup_flags(int group_flags) {this.group_flags = group_flags;}public int getVideo_type() {return video_type;}public void setVideo_type(int video_type) {this.video_type = video_type;}public int getVideo_preloading_flag() {return video_preloading_flag;}public void setVideo_preloading_flag(int video_preloading_flag) {this.video_preloading_flag = video_preloading_flag;}public int getDirect_play() {return direct_play;}public void setDirect_play(int direct_play) {this.direct_play = direct_play;}public DetailVideoLargeImageBean getDetail_video_large_image() {return detail_video_large_image;}public void setDetail_video_large_image(DetailVideoLargeImageBean detail_video_large_image) {this.detail_video_large_image = detail_video_large_image;}public int getShow_pgc_subscribe() {return show_pgc_subscribe;}public void setShow_pgc_subscribe(int show_pgc_subscribe) {this.show_pgc_subscribe = show_pgc_subscribe;}public String getVideo_third_monitor_url() {return video_third_monitor_url;}public void setVideo_third_monitor_url(String video_third_monitor_url) {this.video_third_monitor_url = video_third_monitor_url;}public String getVideo_id() {return video_id;}public void setVideo_id(String video_id) {this.video_id = video_id;}public int getVideo_watching_count() {return video_watching_count;}public void setVideo_watching_count(int video_watching_count) {this.video_watching_count = video_watching_count;}public int getVideo_watch_count() {return video_watch_count;}public void setVideo_watch_count(int video_watch_count) {this.video_watch_count = video_watch_count;}public List<?> getVideo_url() {return video_url;}public void setVideo_url(List<?> video_url) {this.video_url = video_url;}public static class DetailVideoLargeImageBean implements Parcelable {public static final Creator<DetailVideoLargeImageBean> CREATOR = new Creator<DetailVideoLargeImageBean>() {@Overridepublic DetailVideoLargeImageBean createFromParcel(Parcel in) {return new DetailVideoLargeImageBean(in);}@Overridepublic DetailVideoLargeImageBean[] newArray(int size) {return new DetailVideoLargeImageBean[size];}};/*** url : http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee* width : 580* url_list : [{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb9.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb1.pstatp.com/video1609/17600009fb1bb36ce3ee"}]* uri : video1609/17600009fb1bb36ce3ee* height : 326*/private String url;private int width;private String uri;private int height;private List<MiddleImageBean> url_list;public DetailVideoLargeImageBean(Parcel in) {url = in.readString();width = in.readInt();uri = in.readString();height = in.readInt();}public DetailVideoLargeImageBean() {}@Overridepublic void writeToParcel(Parcel dest, int flags) {dest.writeString(url);dest.writeInt(width);dest.writeString(uri);dest.writeInt(height);}@Overridepublic int describeContents() {return 0;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public int getWidth() {return width;}public void setWidth(int width) {this.width = width;}public String getUri() {return uri;}public void setUri(String uri) {this.uri = uri;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public List<MiddleImageBean> getUrl_list() {return url_list;}public void setUrl_list(List<MiddleImageBean> url_list) {this.url_list = url_list;}}}public static class LargeImageListBean {/*** url : http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee* width : 580* url_list : [{"url":"http://p3.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb9.pstatp.com/video1609/17600009fb1bb36ce3ee"},{"url":"http://pb1.pstatp.com/video1609/17600009fb1bb36ce3ee"}]* uri : video1609/17600009fb1bb36ce3ee* height : 326*/@SerializedName("url")private String urlX;private int width;private String uri;private int height;private List<MiddleImageBean> url_list;public String getUrlX() {return urlX;}public void setUrlX(String urlX) {this.urlX = urlX;}public int getWidth() {return width;}public void setWidth(int width) {this.width = width;}public String getUri() {return uri;}public void setUri(String uri) {this.uri = uri;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public List<MiddleImageBean> getUrl_list() {return url_list;}public void setUrl_list(List<MiddleImageBean> url_list) {this.url_list = url_list;}}public static class ImageListBean {/*** url : http://p1.pstatp.com/list/300x196/213b0003f2d1a191e4ff.webp* width : 496* url_list : [{"url":"http://p1.pstatp.com/list/300x196/213b0003f2d1a191e4ff.webp"},{"url":"http://pb3.pstatp.com/list/300x196/213b0003f2d1a191e4ff.webp"},{"url":"http://pb9.pstatp.com/list/300x196/213b0003f2d1a191e4ff.webp"}]* uri : list/213b0003f2d1a191e4ff* height : 279*/@SerializedName("url")private String url;private int width;private String uri;private int height;private List<LargeImageListBean> url_list;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public int getWidth() {return width;}public void setWidth(int width) {this.width = width;}public String getUri() {return uri;}public void setUri(String uri) {this.uri = uri;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public List<LargeImageListBean> getUrl_list() {return url_list;}public void setUrl_list(List<LargeImageListBean> url_list) {this.url_list = url_list;}} } View Code

  比較龐大,有1600多行。

?


3.構建API請求

3.1.封裝API請求接口(整體)

public interface IMobileNewsApi {String HOST = "http://is.snssdk.com/";/*** 獲取個性化新聞* 深圳 http://is.snssdk.com/api/news/feed/v58/?iid=5034850950&device_id=6096495334&category=news_society* 深圳 http://lf.snssdk.com/api/news/feed/v58/?iid=12507202490&device_id=37487219424&category=news_society* 天津 http://ib.snssdk.com/api/news/feed/v58/?* 北京 http://iu.snssdk.com/api/news/feed/v58/?** @param iid 用戶ID* @param deviceId 設備ID* @param category 新聞/圖片/視頻欄目*/@GET("http://is.snssdk.com/api/news/feed/v58/")Call<ResponseBody> getNewsArticle(@Query("iid") String iid,@Query("device_id") String deviceId,@Query("category") String category);@GET("http://is.snssdk.com/api/news/feed/v62/?iid=5034850950&device_id=6096495334&refer=1&count=20&aid=13")Observable<MultiNewsArticleBean> getNewsArticle(@Query("category") String category,@Query("max_behot_time") String maxBehotTime);@GET("http://lf.snssdk.com/api/news/feed/v62/?iid=12507202490&device_id=37487219424&refer=1&count=20&aid=13")Observable<MultiNewsArticleBean> getNewsArticle2(@Query("category") String category,@Query("max_behot_time") String maxBehotTime);/*** 獲取新聞評論* 按熱度排序* http://is.snssdk.com/article/v53/tab_comments/?group_id=6314103921648926977&offset=0&tab_index=0* 按時間排序* http://is.snssdk.com/article/v53/tab_comments/?group_id=6314103921648926977&offset=0&tab_index=1** @param groupId 新聞ID* @param offset 偏移量*/@GET("http://is.snssdk.com/article/v53/tab_comments/")Observable<NewsCommentBean> getNewsComment(@Query("group_id") String groupId,@Query("offset") int offset); }

?

?

3.2.傳遞兩個參數返回Observable<MultiNewsArticleBean>類型第一種(局部)

@GET("http://is.snssdk.com/api/news/feed/v62/?iid=5034850950&device_id=6096495334&refer=1&count=20&aid=13")Observable<MultiNewsArticleBean> getNewsArticle(@Query("category") String category,@Query("max_behot_time") String maxBehotTime);

?

?

3.3.傳遞兩個參數返回Observable<MultiNewsArticleBean>類型第二種(局部)

@GET("http://lf.snssdk.com/api/news/feed/v62/?iid=12507202490&device_id=37487219424&refer=1&count=20&aid=13")Observable<MultiNewsArticleBean> getNewsArticle2(@Query("category") String category,@Query("max_behot_time") String maxBehotTime); 

?


4.通用文章片段的實現

4.1.新聞文章基礎接口

public interface INewsArticle {interface View extends IBaseListView<Presenter>{void onLoadData();void onRefresh();}interface Presenter extends IBasePresenter{void doLoadData(String... category);void doLoadMoreData();void doSetAdapter(List<MultiNewsArticleDataBean> dataBean);void doShowNoMore();}}

?

?

4.2.新聞文章的處理器presenter類

  主要處理API的請求數據,加載更多,處理刷新,處理網絡錯誤等。

package com.jasonjan.headnews.module.news.article;import android.text.TextUtils;import com.google.gson.Gson; import com.jasonjan.headnews.api.IMobileNewsApi; import com.jasonjan.headnews.bean.news.MultiNewsArticleBean; import com.jasonjan.headnews.bean.news.MultiNewsArticleDataBean; import com.jasonjan.headnews.main.ErrorAction; import com.jasonjan.headnews.main.RetrofitFactory; import com.jasonjan.headnews.util.TimeUtil;import java.util.ArrayList; import java.util.List; import java.util.Random;import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.annotations.NonNull; import io.reactivex.functions.Consumer; import io.reactivex.functions.Function; import io.reactivex.functions.Predicate; import io.reactivex.schedulers.Schedulers;/*** Created by JasonJan on 2017/12/12.*/public class NewsArticlePresenter implements INewsArticle.Presenter {private static final String TAG = "NewsArticlePresenter";private INewsArticle.View view;private List<MultiNewsArticleDataBean> dataList = new ArrayList<>();private String category;private String time;private Gson gson = new Gson();private Random random = new Random();public NewsArticlePresenter(INewsArticle.View view) {this.view = view;this.time = TimeUtil.getCurrentTimeStamp();}@Overridepublic void doLoadData(String... category){try {if (this.category == null) {this.category = category[0];}} catch (Exception e) {ErrorAction.print(e);}// 釋放內存if (dataList.size() > 150) {dataList.clear();}getRandom().subscribeOn(Schedulers.io()).switchMap(new Function<MultiNewsArticleBean, Observable<MultiNewsArticleDataBean>>() {@Overridepublic Observable<MultiNewsArticleDataBean> apply(@NonNull MultiNewsArticleBean multiNewsArticleBean) throws Exception {List<MultiNewsArticleDataBean> dataList = new ArrayList<>();for (MultiNewsArticleBean.DataBean dataBean : multiNewsArticleBean.getData()) {dataList.add(gson.fromJson(dataBean.getContent(), MultiNewsArticleDataBean.class));}return Observable.fromIterable(dataList);}}).filter(new Predicate<MultiNewsArticleDataBean>() {@Overridepublic boolean test(@NonNull MultiNewsArticleDataBean dataBean) throws Exception {time = dataBean.getBehot_time();if (TextUtils.isEmpty(dataBean.getSource())) {return false;}try {// 過濾頭條問答新聞if (dataBean.getSource().contains("頭條問答")|| dataBean.getTag().contains("ad")|| dataBean.getSource().contains("悟空問答")) {return false;}// 過濾頭條問答新聞if (dataBean.getRead_count() == 0 || TextUtils.isEmpty(dataBean.getMedia_name())) {String title = dataBean.getTitle();if (title.lastIndexOf("?") == title.length() - 1) {return false;}}} catch (NullPointerException e) {ErrorAction.print(e);}// 過濾重復新聞(與上次刷新的數據比較)for (MultiNewsArticleDataBean bean : dataList) {if (bean.getTitle().equals(dataBean.getTitle())) {return false;}}return true;}}).toList().map(new Function<List<MultiNewsArticleDataBean>, List<MultiNewsArticleDataBean>>() {@Overridepublic List<MultiNewsArticleDataBean> apply(@NonNull List<MultiNewsArticleDataBean> list) throws Exception {// 過濾重復新聞(與本次刷新的數據比較,因為使用了2個請求,數據會有重復)for (int i = 0; i < list.size() - 1; i++) {for (int j = list.size() - 1; j > i; j--) {if (list.get(j).getTitle().equals(list.get(i).getTitle())) {list.remove(j);}}}return list;}}).compose(view.<List<MultiNewsArticleDataBean>>bindToLife()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<List<MultiNewsArticleDataBean>>() {@Overridepublic void accept(@NonNull List<MultiNewsArticleDataBean> list) throws Exception {if (null != list && list.size() > 0) {doSetAdapter(list);} else {doShowNoMore();}}}, new Consumer<Throwable>() {@Overridepublic void accept(@NonNull Throwable throwable) throws Exception {doShowNetError();ErrorAction.print(throwable);}});}@Overridepublic void doLoadMoreData() {doLoadData();}@Overridepublic void doSetAdapter(List<MultiNewsArticleDataBean> list) {dataList.addAll(list);view.onSetAdapter(dataList);view.onHideLoading();}@Overridepublic void doRefresh() {if (dataList.size() != 0) {dataList.clear();time = TimeUtil.getCurrentTimeStamp();}view.onShowLoading();doLoadData();}@Overridepublic void doShowNetError() {view.onHideLoading();view.onShowNetError();}@Overridepublic void doShowNoMore() {view.onHideLoading();view.onShowNoMore();}private Observable<MultiNewsArticleBean> getRandom() {int i = random.nextInt(10);if (i % 2 == 0) {Observable<MultiNewsArticleBean> ob1 = RetrofitFactory.getRetrofit().create(IMobileNewsApi.class).getNewsArticle(this.category, this.time);return ob1;} else {Observable<MultiNewsArticleBean> ob2 = RetrofitFactory.getRetrofit().create(IMobileNewsApi.class).getNewsArticle2(this.category, this.time);return ob2;}} } View Code

?

?

4.3.新聞文章的視圖片段

  繼承了BaseListFragment,傳遞了接口中的處理器

package com.jasonjan.headnews.module.news.article;import android.os.Bundle; import android.view.View;import com.jasonjan.headnews.adapter.DiffCallback; import com.jasonjan.headnews.bean.common.LoadingBean; import com.jasonjan.headnews.main.Register; import com.jasonjan.headnews.module.base.BaseListFragment; import com.jasonjan.headnews.util.OnLoadMoreListener;import java.util.List;import me.drakeet.multitype.Items; import me.drakeet.multitype.MultiTypeAdapter;/*** Created by JasonJan on 2017/12/12.*/public class NewsArticleView extends BaseListFragment<INewsArticle.Presenter> implements INewsArticle.View {private static final String TAG = "NewsArticleView";private String categoryId;public static NewsArticleView newInstance(String categoryId) {Bundle bundle = new Bundle();bundle.putString(TAG, categoryId);NewsArticleView view = new NewsArticleView();view.setArguments(bundle);return view;}@Overrideprotected void initData() {categoryId = getArguments().getString(TAG);}@Overrideprotected void initView(View view) {super.initView(view);adapter = new MultiTypeAdapter(oldItems);Register.registerNewsArticleItem(adapter);recyclerView.setAdapter(adapter);recyclerView.addOnScrollListener(new OnLoadMoreListener() {@Overridepublic void onLoadMore() {if (canLoadMore) {canLoadMore = false;presenter.doLoadMoreData();}}});}@Overridepublic void fetchData() {super.fetchData();onLoadData();}@Overridepublic void onLoadData() {onShowLoading();presenter.doLoadData(categoryId);}@Overridepublic void onSetAdapter(final List<?> list) {Items newItems = new Items(list);newItems.add(new LoadingBean());DiffCallback.notifyDataSetChanged(oldItems, newItems, DiffCallback.MUlTI_NEWS, adapter);oldItems.clear();oldItems.addAll(newItems);canLoadMore = true;}@Overridepublic void setPresenter(INewsArticle.Presenter presenter) {if (null == presenter) {this.presenter = new NewsArticlePresenter(this);}} } View Code

?

?

4.4.自定義Register添加類型==>注冊數據類型

public static void registerNewsArticleItem(@NonNull MultiTypeAdapter adapter) {// 一個類型對應多個 ItemViewBinderadapter.register(MultiNewsArticleDataBean.class).to(new NewsArticleImgViewBinder(),new NewsArticleVideoViewBinder(),new NewsArticleTextViewBinder()).withClassLinker(new ClassLinker<MultiNewsArticleDataBean>() {@NonNull@Overridepublic Class<? extends ItemViewBinder<MultiNewsArticleDataBean, ?>> index(@NonNull MultiNewsArticleDataBean item) {if (item.isHas_video()) {return NewsArticleVideoViewBinder.class;}if (null != item.getImage_list() && item.getImage_list().size() > 0) {return NewsArticleImgViewBinder.class;}return NewsArticleTextViewBinder.class;}});adapter.register(LoadingBean.class, new LoadingViewBinder());adapter.register(LoadingEndBean.class, new LoadingEndViewBinder());}

  有三種類型,一種是視頻型,一種圖片型,一種文字型。

  后面要寫這三個視圖綁定類。

?

?

4.5.自定義Diffback添加類型==>判斷新老數據是否相同  

  在areItemsTheSame函數中添加這種類型:

case MUlTI_NEWS:return ((MultiNewsArticleDataBean) oldList.get(oldItemPosition)).getTitle().equals(((MultiNewsArticleDataBean) newList.get(newItemPosition)).getTitle());

  在areContentsTheSame函數中添加這種類型:

case MUlTI_NEWS:return ((MultiNewsArticleDataBean) oldList.get(oldItemPosition)).getItem_id() ==((MultiNewsArticleDataBean) newList.get(newItemPosition)).getItem_id();

?


5.三種類型的視圖綁定

5.1.視頻類型的頁面布局

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardViewxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="4dp"android:layout_marginTop="4dp"android:background="@color/viewBackground"app:cardElevation="1dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="?attr/selectableItemBackground"android:foreground="?attr/selectableItemBackground"android:padding="16dp"><LinearLayoutandroid:id="@+id/header"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:orientation="horizontal"><com.jasonjan.headnews.widget.CircleImageViewandroid:id="@+id/iv_media"android:layout_width="22dp"android:layout_height="22dp"android:scaleType="centerCrop"/><TextViewandroid:id="@+id/tv_extra"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:layout_marginStart="8dp"android:ellipsize="end"android:maxLength="30"android:maxLines="1"android:textAppearance="@style/TextAppearance.AppCompat.Caption"tools:text="新聞源 - 2222條評論 - 1小時前"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_dots"android:layout_width="22dp"android:layout_height="22dp"android:layout_alignParentEnd="true"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:padding="4dp"android:scaleType="center"app:srcCompat="@drawable/ic_dots_horizontal_grey500_24dp"tools:ignore="ContentDescription"/></RelativeLayout></LinearLayout><LinearLayoutandroid:id="@+id/content"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/header"android:layout_marginTop="4dp"android:orientation="vertical"><TextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:maxLines="2"android:textStyle="bold"tools:text="菲總統稱中國將向菲提供武器 已指示軍方前往接收"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="169dp"android:paddingTop="8dp"><ImageViewandroid:id="@+id/iv_video_image"android:layout_width="match_parent"android:layout_height="match_parent"android:scaleType="centerCrop"android:src="@color/viewBackground"tools:ignore="ContentDescription"/><TextViewandroid:id="@+id/tv_video_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentEnd="true"android:layout_alignParentRight="true"android:layout_marginBottom="8dp"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"android:background="@color/textColorPrimary"android:padding="2dp"android:textColor="@color/White"tools:text="10:34"/></RelativeLayout></LinearLayout></RelativeLayout> </android.support.v7.widget.CardView> View Code

  圖片預覽:

  

?

?

5.2.視頻類型的綁定類 

package com.jasonjan.headnews.binder.news;import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView;import com.jakewharton.rxbinding2.view.RxView; import com.jasonjan.headnews.R; import com.jasonjan.headnews.bean.news.MultiNewsArticleDataBean; import com.jasonjan.headnews.main.ErrorAction; import com.jasonjan.headnews.main.IntentAction; import com.jasonjan.headnews.util.ImageLoader; import com.jasonjan.headnews.util.SettingUtil; import com.jasonjan.headnews.util.TimeUtil; import com.jasonjan.headnews.widget.CircleImageView;import java.util.concurrent.TimeUnit;import io.reactivex.functions.Consumer; import me.drakeet.multitype.ItemViewBinder;/*** Created by JasonJan on 2017/12/12.*/public class NewsArticleVideoViewBinder extends ItemViewBinder<MultiNewsArticleDataBean,NewsArticleVideoViewBinder.ViewHolder> {private static final String TAG = "NewsArticleHasVideoView";@NonNull@Overrideprotected NewsArticleVideoViewBinder.ViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {View view = inflater.inflate(R.layout.item_news_article_video, parent, false);return new ViewHolder(view);}@Overrideprotected void onBindViewHolder(@NonNull final NewsArticleVideoViewBinder.ViewHolder holder, @NonNull final MultiNewsArticleDataBean item) {final Context context = holder.itemView.getContext();try {if (null != item.getVideo_detail_info()) {if (null != item.getVideo_detail_info().getDetail_video_large_image()) {String image = item.getVideo_detail_info().getDetail_video_large_image().getUrl();if (!TextUtils.isEmpty(image)) {ImageLoader.loadCenterCrop(context, image, holder.iv_video_image, R.color.viewBackground, R.mipmap.error_image);}}} else {holder.iv_video_image.setImageResource(R.mipmap.error_image);}if (null != item.getUser_info()) {String avatar_url = item.getUser_info().getAvatar_url();if (!TextUtils.isEmpty(avatar_url)) {ImageLoader.loadCenterCrop(context, avatar_url, holder.iv_media, R.color.viewBackground);}}String tv_title = item.getTitle();holder.tv_title.setTextSize(SettingUtil.getInstance().getTextSize());String tv_source = item.getSource();String tv_comment_count = item.getComment_count() + "評論";String tv_datetime = item.getBehot_time() + "";if (!TextUtils.isEmpty(tv_datetime)) {tv_datetime = TimeUtil.getTimeStampAgo(tv_datetime);}int video_duration = item.getVideo_duration();String min = String.valueOf(video_duration / 60);String second = String.valueOf(video_duration % 10);if (Integer.parseInt(second) < 10) {second = "0" + second;}String tv_video_time = min + ":" + second;holder.tv_title.setText(tv_title);holder.tv_extra.setText(tv_source + " - " + tv_comment_count + " - " + tv_datetime);holder.tv_video_time.setText(tv_video_time);holder.iv_dots.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {PopupMenu popupMenu = new PopupMenu(context,holder.iv_dots, Gravity.END, 0, R.style.MyPopupMenu);popupMenu.inflate(R.menu.menu_share);popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem menu) {int itemId = menu.getItemId();if (itemId == R.id.action_share) {IntentAction.send(context, item.getTitle() + "\n" + item.getShare_url());}return false;}});popupMenu.show();}});RxView.clicks(holder.itemView).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {@Overridepublic void accept(@io.reactivex.annotations.NonNull Object o) throws Exception {// VideoContentActivity.launch(item); }});} catch (Exception e) {ErrorAction.print(e);}}class ViewHolder extends RecyclerView.ViewHolder {private CircleImageView iv_media;private TextView tv_extra;private TextView tv_title;private ImageView iv_video_image;private TextView tv_video_time;private ImageView iv_dots;ViewHolder(View itemView) {super(itemView);this.iv_media = itemView.findViewById(R.id.iv_media);this.tv_extra = itemView.findViewById(R.id.tv_extra);this.tv_title = itemView.findViewById(R.id.tv_title);this.iv_video_image = itemView.findViewById(R.id.iv_video_image);this.tv_video_time = itemView.findViewById(R.id.tv_video_time);this.iv_dots = itemView.findViewById(R.id.iv_dots);}} } View Code

?

?

5.3.圖片類型的頁面布局

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardViewxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="4dp"android:layout_marginTop="4dp"android:background="@color/viewBackground"app:cardElevation="1dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="?attr/selectableItemBackground"android:foreground="?attr/selectableItemBackground"android:padding="16dp"><LinearLayoutandroid:id="@+id/header"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:orientation="horizontal"><com.meiji.toutiao.widget.CircleImageViewandroid:id="@+id/iv_media"android:layout_width="22dp"android:layout_height="22dp"android:scaleType="centerCrop"/><TextViewandroid:id="@+id/tv_extra"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:layout_marginStart="8dp"android:ellipsize="end"android:maxLength="30"android:maxLines="1"android:textAppearance="@style/TextAppearance.AppCompat.Caption"tools:text="新聞源 - 2222條評論 - 1小時前"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_dots"android:layout_width="22dp"android:layout_height="22dp"android:layout_alignParentEnd="true"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:padding="4dp"android:scaleType="center"app:srcCompat="@drawable/ic_dots_horizontal_grey500_24dp"tools:ignore="ContentDescription"/></RelativeLayout></LinearLayout><LinearLayoutandroid:id="@+id/content"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/header"android:layout_marginTop="4dp"><LinearLayoutandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"android:layout_weight="1"android:orientation="vertical"><TextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:maxLines="2"android:textStyle="bold"tools:text="菲總統稱中國將向菲提供武器 已指示軍方前往接收"/><TextViewandroid:id="@+id/tv_abstract"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="4dp"android:ellipsize="end"android:maxLines="3"tools:text="美國總統當選人特朗普日前暗示,可能拿美國的“一中政策”當談判籌碼,與中國大陸就諸如人民幣匯率及南海等爭議討價還價。"/></LinearLayout><ImageViewandroid:id="@+id/iv_image"android:layout_width="72dp"android:layout_height="72dp"android:layout_marginLeft="8dp"android:layout_marginStart="8dp"tools:ignore="ContentDescription"/></LinearLayout></RelativeLayout> </android.support.v7.widget.CardView> View Code

  圖片預覽:

  

?

?

5.4.圖片類型的綁定類

package com.jasonjan.headnews.binder.news;import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView;import com.jakewharton.rxbinding2.view.RxView; import com.jasonjan.headnews.R; import com.jasonjan.headnews.bean.news.MultiNewsArticleDataBean; import com.jasonjan.headnews.main.ErrorAction; import com.jasonjan.headnews.main.IntentAction; import com.jasonjan.headnews.util.ImageLoader; import com.jasonjan.headnews.util.SettingUtil; import com.jasonjan.headnews.util.TimeUtil; import com.jasonjan.headnews.widget.CircleImageView;import java.util.List; import java.util.concurrent.TimeUnit;import io.reactivex.functions.Consumer; import me.drakeet.multitype.ItemViewBinder;/*** Created by JasonJan on 2017/12/12.*/public class NewsArticleImgViewBinder extends ItemViewBinder<MultiNewsArticleDataBean,NewsArticleImgViewBinder.ViewHolder> {@NonNull@Overrideprotected NewsArticleImgViewBinder.ViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {View view = inflater.inflate(R.layout.item_news_article_img, parent, false);return new ViewHolder(view);}@Overrideprotected void onBindViewHolder(@NonNull final NewsArticleImgViewBinder.ViewHolder holder, @NonNull final MultiNewsArticleDataBean item) {final Context context = holder.itemView.getContext();try {String imgUrl = "http://p3.pstatp.com/";List<MultiNewsArticleDataBean.ImageListBean> image_list = item.getImage_list();if (image_list != null && image_list.size() != 0) {String url = image_list.get(0).getUrl();ImageLoader.loadCenterCrop(context, url, holder.iv_image, R.color.viewBackground);if (!TextUtils.isEmpty(image_list.get(0).getUri())) {imgUrl += image_list.get(0).getUri().replace("list", "large");}}if (null != item.getUser_info()) {String avatar_url = item.getUser_info().getAvatar_url();if (!TextUtils.isEmpty(avatar_url)) {ImageLoader.loadCenterCrop(context, avatar_url, holder.iv_media, R.color.viewBackground);}}String tv_title = item.getTitle();String tv_abstract = item.getAbstractX();String tv_source = item.getSource();String tv_comment_count = item.getComment_count() + "評論";String tv_datetime = item.getBehot_time() + "";if (!TextUtils.isEmpty(tv_datetime)) {tv_datetime = TimeUtil.getTimeStampAgo(tv_datetime);}holder.tv_title.setText(tv_title);holder.tv_title.setTextSize(SettingUtil.getInstance().getTextSize());holder.tv_abstract.setText(tv_abstract);holder.tv_extra.setText(tv_source + " - " + tv_comment_count + " - " + tv_datetime);holder.iv_dots.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {PopupMenu popupMenu = new PopupMenu(context,holder.iv_dots, Gravity.END, 0, R.style.MyPopupMenu);popupMenu.inflate(R.menu.menu_share);popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem menu) {int itemId = menu.getItemId();if (itemId == R.id.action_share) {IntentAction.send(context, item.getTitle() + "\n" + item.getShare_url());}return false;}});popupMenu.show();}});final String finalImgUrl = imgUrl;RxView.clicks(holder.itemView).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {@Overridepublic void accept(@io.reactivex.annotations.NonNull Object o) throws Exception {//NewsContentActivity.launch(item, finalImgUrl); }});} catch (Exception e) {ErrorAction.print(e);}}class ViewHolder extends RecyclerView.ViewHolder {private CircleImageView iv_media;private ImageView iv_image;private TextView tv_title;private TextView tv_abstract;private TextView tv_extra;private ImageView iv_dots;ViewHolder(View itemView) {super(itemView);this.iv_media = itemView.findViewById(R.id.iv_media);this.iv_image = itemView.findViewById(R.id.iv_image);this.tv_title = itemView.findViewById(R.id.tv_title);this.tv_abstract = itemView.findViewById(R.id.tv_abstract);this.tv_extra = itemView.findViewById(R.id.tv_extra);this.iv_dots = itemView.findViewById(R.id.iv_dots);}} } View Code

?

?

5.5.文字類型的頁面布局 

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardViewxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="4dp"android:layout_marginTop="4dp"android:background="@color/viewBackground"app:cardElevation="1dp"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="?attr/selectableItemBackground"android:foreground="?attr/selectableItemBackground"android:padding="16dp"><LinearLayoutandroid:id="@+id/header"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:orientation="horizontal"><com.meiji.toutiao.widget.CircleImageViewandroid:id="@+id/iv_media"android:layout_width="22dp"android:layout_height="22dp"android:scaleType="centerCrop"/><TextViewandroid:id="@+id/tv_extra"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:layout_marginStart="8dp"android:ellipsize="end"android:maxLength="30"android:maxLines="1"android:textAppearance="@style/TextAppearance.AppCompat.Caption"tools:text="新聞源 - 2222條評論 - 1小時前"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_dots"android:layout_width="22dp"android:layout_height="22dp"android:layout_alignParentEnd="true"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:padding="4dp"android:scaleType="center"app:srcCompat="@drawable/ic_dots_horizontal_grey500_24dp"tools:ignore="ContentDescription"/></RelativeLayout></LinearLayout><LinearLayoutandroid:id="@+id/content"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/header"android:layout_marginTop="4dp"android:orientation="vertical"><TextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:maxLines="2"android:textStyle="bold"tools:text="菲總統稱中國將向菲提供武器 已指示軍方前往接收"/><TextViewandroid:id="@+id/tv_abstract"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="4dp"android:ellipsize="end"android:maxLines="3"tools:text="美國總統當選人特朗普日前暗示,可能拿美國的“一中政策”當談判籌碼,與中國大陸就諸如人民幣匯率及南海等爭議討價還價。"/></LinearLayout></RelativeLayout> </android.support.v7.widget.CardView> View Code

  圖片預覽:

  

?

?

5.6.文字類型的綁定類  

package com.jasonjan.headnews.binder.news;import android.content.Context; import android.support.annotation.NonNull; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView;import com.jakewharton.rxbinding2.view.RxView; import com.jasonjan.headnews.R; import com.jasonjan.headnews.bean.news.MultiNewsArticleDataBean; import com.jasonjan.headnews.main.ErrorAction; import com.jasonjan.headnews.main.IntentAction; import com.jasonjan.headnews.util.ImageLoader; import com.jasonjan.headnews.util.SettingUtil; import com.jasonjan.headnews.util.TimeUtil; import com.jasonjan.headnews.widget.CircleImageView;import java.util.concurrent.TimeUnit;import io.reactivex.functions.Consumer; import me.drakeet.multitype.ItemViewBinder;/*** Created by JasonJan on 2017/12/12.*/public class NewsArticleTextViewBinder extends ItemViewBinder<MultiNewsArticleDataBean,NewsArticleTextViewBinder.ViewHolder>{private static final String TAG = "NewsArticleTextViewBind";@NonNull@Overrideprotected NewsArticleTextViewBinder.ViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {View view = inflater.inflate(R.layout.item_news_article_text, parent, false);return new ViewHolder(view);}@Overrideprotected void onBindViewHolder(@NonNull final NewsArticleTextViewBinder.ViewHolder holder, @NonNull final MultiNewsArticleDataBean item) {final Context context = holder.itemView.getContext();try {if (null != item.getUser_info()) {String avatar_url = item.getUser_info().getAvatar_url();if (!TextUtils.isEmpty(avatar_url)) {ImageLoader.loadCenterCrop(context, avatar_url, holder.iv_media, R.color.viewBackground);}}String tv_title = item.getTitle();String tv_abstract = item.getAbstractX();String tv_source = item.getSource();String tv_comment_count = item.getComment_count() + "評論";String tv_datetime = item.getBehot_time() + "";if (!TextUtils.isEmpty(tv_datetime)) {tv_datetime = TimeUtil.getTimeStampAgo(tv_datetime);}holder.tv_title.setText(tv_title);holder.tv_title.setTextSize(SettingUtil.getInstance().getTextSize());holder.tv_abstract.setText(tv_abstract);holder.tv_extra.setText(tv_source + " - " + tv_comment_count + " - " + tv_datetime);holder.iv_dots.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {PopupMenu popupMenu = new PopupMenu(context,holder.iv_dots, Gravity.END, 0, R.style.MyPopupMenu);popupMenu.inflate(R.menu.menu_share);popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem menu) {int itemId = menu.getItemId();if (itemId == R.id.action_share) {IntentAction.send(context, item.getTitle() + "\n" + item.getShare_url());}return false;}});popupMenu.show();}});RxView.clicks(holder.itemView).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Consumer<Object>() {@Overridepublic void accept(@io.reactivex.annotations.NonNull Object o) throws Exception {//NewsContentActivity.launch(item); }});} catch (Exception e) {ErrorAction.print(e);}}class ViewHolder extends RecyclerView.ViewHolder {private CircleImageView iv_media;private TextView tv_extra;private TextView tv_title;private TextView tv_abstract;private ImageView iv_dots;ViewHolder(View itemView) {super(itemView);this.iv_media = itemView.findViewById(R.id.iv_media);this.tv_extra = itemView.findViewById(R.id.tv_extra);this.tv_title = itemView.findViewById(R.id.tv_title);this.tv_abstract = itemView.findViewById(R.id.tv_abstract);this.iv_dots = itemView.findViewById(R.id.iv_dots);}} } View Code

?


6.效果預覽

6.1.目前已經做好的東西

  底部導航欄新聞主頁面的所有類型。

  包括3種主要的Fragment。

  有段子頁面(只有文字,下方有贊或者踩)

  有普通頁面(也有3中類型,文字或圖片或視頻三種綁定視圖)

  有問答頁面(以問題開始,下方有多少個回答,右下方顯示時間,中間顯示3張圖片或者純文字)

  以上就是新聞的所有頁面。

?

?

6.2.效果預覽

  

?

?

6.3.目前整個項目下載鏈接 

鏈接:https://pan.baidu.com/s/1nvuvxB7 密碼:2lle

?

  

?



轉載于:https://www.cnblogs.com/Jason-Jan/p/8026746.html

總結

以上是生活随笔為你收集整理的TouTiao开源项目 分析笔记10 实现通用普通文章片段页面的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产99久久精品一区二区 | 少妇的肉体aa片免费 | 99久久人妻精品免费二区 | 亚洲成熟女人毛毛耸耸多 | 人妻无码久久精品人妻 | 欧美老妇与禽交 | 精品久久久无码中文字幕 | 国产人妻精品一区二区三区不卡 | 性欧美大战久久久久久久 | аⅴ资源天堂资源库在线 | 亚洲国产精品久久人人爱 | 久久精品成人欧美大片 | 性欧美牲交在线视频 | aa片在线观看视频在线播放 | 无套内谢的新婚少妇国语播放 | 成人aaa片一区国产精品 | 久久久无码中文字幕久... | 中文字幕亚洲情99在线 | 人人妻人人澡人人爽人人精品 | 精品乱子伦一区二区三区 | 日韩人妻无码一区二区三区久久99 | 成人欧美一区二区三区 | 亚洲理论电影在线观看 | 一区二区传媒有限公司 | 永久免费观看美女裸体的网站 | 亚洲 欧美 激情 小说 另类 | 久久久中文久久久无码 | 亚洲热妇无码av在线播放 | 久久精品国产亚洲精品 | 亚洲色www成人永久网址 | 国产色xx群视频射精 | 在线欧美精品一区二区三区 | 丰满人妻精品国产99aⅴ | 国产97人人超碰caoprom | 成人一区二区免费视频 | 欧美激情一区二区三区成人 | 国产舌乚八伦偷品w中 | 婷婷丁香六月激情综合啪 | 国产高清av在线播放 | www国产亚洲精品久久网站 | 熟妇女人妻丰满少妇中文字幕 | 国产99久久精品一区二区 | aa片在线观看视频在线播放 | 国产激情精品一区二区三区 | 国产色xx群视频射精 | 久久综合给久久狠狠97色 | 亚洲 欧美 激情 小说 另类 | 久久亚洲中文字幕无码 | 精品夜夜澡人妻无码av蜜桃 | 无码av最新清无码专区吞精 | 亚洲 a v无 码免 费 成 人 a v | 国产亚洲精品久久久久久久 | 久久久久成人片免费观看蜜芽 | 激情内射日本一区二区三区 | 99国产欧美久久久精品 | 中文字幕乱妇无码av在线 | 丰满岳乱妇在线观看中字无码 | 午夜丰满少妇性开放视频 | 大地资源网第二页免费观看 | 无码精品国产va在线观看dvd | 欧美日韩视频无码一区二区三 | 亚洲欧美精品aaaaaa片 | 内射欧美老妇wbb | 亚洲精品综合一区二区三区在线 | 天天摸天天透天天添 | 国产成人无码av一区二区 | 性欧美牲交xxxxx视频 | 99麻豆久久久国产精品免费 | www成人国产高清内射 | 中文字幕无码av激情不卡 | 无码人妻黑人中文字幕 | 亚洲一区二区三区无码久久 | 欧美日韩精品 | 免费人成在线视频无码 | 强伦人妻一区二区三区视频18 | 蜜臀aⅴ国产精品久久久国产老师 | 国产熟妇高潮叫床视频播放 | 无码av最新清无码专区吞精 | 亚洲综合伊人久久大杳蕉 | 色偷偷人人澡人人爽人人模 | 性欧美videos高清精品 | 国产绳艺sm调教室论坛 | 欧美猛少妇色xxxxx | 亚洲综合伊人久久大杳蕉 | 久久久www成人免费毛片 | 国产在线精品一区二区高清不卡 | 国产肉丝袜在线观看 | 久久久久国色av免费观看性色 | 国产成人一区二区三区在线观看 | 日韩精品久久久肉伦网站 | 日本精品人妻无码免费大全 | 亚洲国产欧美在线成人 | 理论片87福利理论电影 | 国产精品18久久久久久麻辣 | 欧美日韩一区二区免费视频 | 中文字幕av日韩精品一区二区 | 国产精品久免费的黄网站 | 美女毛片一区二区三区四区 | 亚洲理论电影在线观看 | 日日摸天天摸爽爽狠狠97 | 国产av人人夜夜澡人人爽麻豆 | 色欲久久久天天天综合网精品 | 伊人久久大香线蕉av一区二区 | 夫妻免费无码v看片 | 亚洲日本va中文字幕 | 全黄性性激高免费视频 | 亚洲精品成a人在线观看 | 99视频精品全部免费免费观看 | 久久亚洲日韩精品一区二区三区 | 久久久精品成人免费观看 | 国产亚洲精品精品国产亚洲综合 | 亚洲日韩av片在线观看 | 人妻少妇精品无码专区动漫 | 中文字幕av伊人av无码av | 国产人妻精品一区二区三区 | 国产在线一区二区三区四区五区 | 丰满人妻一区二区三区免费视频 | 久久久久se色偷偷亚洲精品av | 国产av人人夜夜澡人人爽麻豆 | 久久99热只有频精品8 | 亚洲国产一区二区三区在线观看 | 亚洲自偷精品视频自拍 | 国产成人精品视频ⅴa片软件竹菊 | 国精产品一区二区三区 | 国产精品久久久 | 少妇邻居内射在线 | 少妇性l交大片 | 大肉大捧一进一出好爽视频 | 国产成人精品视频ⅴa片软件竹菊 | 欧洲熟妇色 欧美 | 男人的天堂2018无码 | 国产精品99久久精品爆乳 | 精品无码国产自产拍在线观看蜜 | 午夜精品久久久内射近拍高清 | 国产人妖乱国产精品人妖 | 国产精品久久久久久久影院 | www一区二区www免费 | 国产真实乱对白精彩久久 | 狂野欧美性猛xxxx乱大交 | 久久精品国产一区二区三区 | 久激情内射婷内射蜜桃人妖 | 色综合久久久无码中文字幕 | 久久久久亚洲精品中文字幕 | 国精产品一区二区三区 | 97精品人妻一区二区三区香蕉 | 999久久久国产精品消防器材 | 亚洲精品国偷拍自产在线麻豆 | 国产精品无码成人午夜电影 | 沈阳熟女露脸对白视频 | 亚洲国产精品久久久久久 | 久久综合狠狠综合久久综合88 | 亚洲啪av永久无码精品放毛片 | 国产疯狂伦交大片 | 18禁止看的免费污网站 | 欧美日本日韩 | 少妇性荡欲午夜性开放视频剧场 | 亚洲成a人片在线观看无码3d | 三上悠亚人妻中文字幕在线 | 大色综合色综合网站 | 国产欧美熟妇另类久久久 | 国产香蕉尹人视频在线 | 清纯唯美经典一区二区 | 亚洲乱码日产精品bd | 宝宝好涨水快流出来免费视频 | 网友自拍区视频精品 | 蜜臀aⅴ国产精品久久久国产老师 | 狠狠噜狠狠狠狠丁香五月 | 性欧美熟妇videofreesex | 国产精品久久久午夜夜伦鲁鲁 | 国产精品嫩草久久久久 | 国精产品一区二区三区 | 亚洲一区二区三区在线观看网站 | 亚洲の无码国产の无码影院 | av无码久久久久不卡免费网站 | 黑人大群体交免费视频 | 中文字幕色婷婷在线视频 | 国产精品自产拍在线观看 | 国内精品九九久久久精品 | av无码不卡在线观看免费 | 色综合久久中文娱乐网 | 露脸叫床粗话东北少妇 | 精品久久久久香蕉网 | 一本大道久久东京热无码av | 国产精品久久久久久久影院 | 亚洲乱码国产乱码精品精 | 中文无码精品a∨在线观看不卡 | 中文字幕人妻无码一夲道 | 免费无码肉片在线观看 | 人妻少妇精品无码专区动漫 | 亚洲欧美精品伊人久久 | 日韩av无码一区二区三区 | 国内精品久久毛片一区二区 | 亚洲成a人一区二区三区 | 国产激情无码一区二区app | 任你躁在线精品免费 | 欧洲精品码一区二区三区免费看 | 国产精品-区区久久久狼 | 精品无码国产自产拍在线观看蜜 | 久久久亚洲欧洲日产国码αv | 一本精品99久久精品77 | 精品久久久久久亚洲精品 | 国产欧美精品一区二区三区 | 高潮毛片无遮挡高清免费视频 | 无码人妻精品一区二区三区不卡 | 国产精品国产自线拍免费软件 | 日本熟妇大屁股人妻 | 午夜精品一区二区三区的区别 | 婷婷六月久久综合丁香 | 最近中文2019字幕第二页 | 国产精品手机免费 | 妺妺窝人体色www婷婷 | 丁香花在线影院观看在线播放 | 精品欧洲av无码一区二区三区 | 国产精品第一国产精品 | 亚洲娇小与黑人巨大交 | 日韩欧美群交p片內射中文 | www一区二区www免费 | 日韩视频 中文字幕 视频一区 | 国产肉丝袜在线观看 | 色欲久久久天天天综合网精品 | 午夜丰满少妇性开放视频 | 亚洲欧美国产精品久久 | 色一情一乱一伦一视频免费看 | 久久精品成人欧美大片 | 99久久精品国产一区二区蜜芽 | 国产精品嫩草久久久久 | 少妇性俱乐部纵欲狂欢电影 | 成人欧美一区二区三区黑人 | 亚洲 高清 成人 动漫 | 国产成人精品必看 | 亚洲s色大片在线观看 | 2020最新国产自产精品 | 国产日产欧产精品精品app | 天天拍夜夜添久久精品 | 国产午夜手机精彩视频 | 小鲜肉自慰网站xnxx | 国产欧美亚洲精品a | 国产精品久久久久久亚洲影视内衣 | 国产精品va在线观看无码 | 亚洲精品一区二区三区大桥未久 | 377p欧洲日本亚洲大胆 | 欧美成人家庭影院 | 一本久道久久综合婷婷五月 | 亚洲精品国偷拍自产在线麻豆 | 一本久久a久久精品vr综合 | 久久99热只有频精品8 | 天天燥日日燥 | 狠狠色欧美亚洲狠狠色www | 亚洲成av人片在线观看无码不卡 | 国产午夜无码精品免费看 | 亲嘴扒胸摸屁股激烈网站 | 国产精品亚洲а∨无码播放麻豆 | 国产成人无码a区在线观看视频app | 亚洲熟妇色xxxxx亚洲 | 国产口爆吞精在线视频 | 国产精品久久久久久亚洲影视内衣 | 国产精品久久久久久亚洲毛片 | 无码av免费一区二区三区试看 | 人妻aⅴ无码一区二区三区 | 久久久久av无码免费网 | 国产成人午夜福利在线播放 | 亚洲精品成人av在线 | 亚洲 a v无 码免 费 成 人 a v | 又大又黄又粗又爽的免费视频 | 少女韩国电视剧在线观看完整 | 内射老妇bbwx0c0ck | 日本高清一区免费中文视频 | 女人被男人躁得好爽免费视频 | 97夜夜澡人人爽人人喊中国片 | 性啪啪chinese东北女人 | 波多野结衣高清一区二区三区 | 国产精品成人av在线观看 | v一区无码内射国产 | 久久精品成人欧美大片 | 午夜无码人妻av大片色欲 | 亚洲中文字幕无码中字 | 福利一区二区三区视频在线观看 | 少妇的肉体aa片免费 | 国产精品99爱免费视频 | 亚洲日韩精品欧美一区二区 | 无码毛片视频一区二区本码 | 欧美精品在线观看 | 国产乱子伦视频在线播放 | 狠狠色色综合网站 | 麻豆国产丝袜白领秘书在线观看 | 国产偷国产偷精品高清尤物 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产无遮挡又黄又爽又色 | 亚洲日韩精品欧美一区二区 | 人妻插b视频一区二区三区 | 国产乱人伦av在线无码 | 少妇高潮喷潮久久久影院 | 理论片87福利理论电影 | 人人妻人人澡人人爽欧美一区九九 | 中文字幕无码av激情不卡 | 曰韩无码二三区中文字幕 | 牛和人交xxxx欧美 | 未满小14洗澡无码视频网站 | 天天躁日日躁狠狠躁免费麻豆 | 久久综合九色综合欧美狠狠 | 老头边吃奶边弄进去呻吟 | 撕开奶罩揉吮奶头视频 | 国产成人无码午夜视频在线观看 | 欧美精品国产综合久久 | 精品人人妻人人澡人人爽人人 | 国产在线一区二区三区四区五区 | 日本乱偷人妻中文字幕 | 午夜精品一区二区三区在线观看 | 学生妹亚洲一区二区 | 久久久久久a亚洲欧洲av冫 | 九九在线中文字幕无码 | 99精品久久毛片a片 | 久久人人97超碰a片精品 | 亚洲精品一区二区三区大桥未久 | 亚洲精品中文字幕乱码 | 黑人大群体交免费视频 | 蜜臀av在线播放 久久综合激激的五月天 | 国产麻豆精品一区二区三区v视界 | 成人av无码一区二区三区 | 麻豆国产97在线 | 欧洲 | 日韩人妻无码一区二区三区久久99 | 中文久久乱码一区二区 | 国产成人综合美国十次 | 久久这里只有精品视频9 | 少妇无码吹潮 | 国产绳艺sm调教室论坛 | 国产成人精品一区二区在线小狼 | 国产内射爽爽大片视频社区在线 | 久久久www成人免费毛片 | 免费视频欧美无人区码 | 国产一区二区三区日韩精品 | 乌克兰少妇性做爰 | 在线精品亚洲一区二区 | 国产激情无码一区二区 | 亚洲色大成网站www国产 | 亚洲日韩av片在线观看 | 无码人妻av免费一区二区三区 | 国产美女精品一区二区三区 | 粗大的内捧猛烈进出视频 | 日韩成人一区二区三区在线观看 | 天堂亚洲免费视频 | 国产sm调教视频在线观看 | 欧美日韩亚洲国产精品 | 成人aaa片一区国产精品 | 欧美激情一区二区三区成人 | 国产亚洲精品久久久久久国模美 | 亚洲精品成人福利网站 | 欧美激情内射喷水高潮 | 久久久久久久人妻无码中文字幕爆 | 高中生自慰www网站 | 色噜噜亚洲男人的天堂 | 色诱久久久久综合网ywww | 欧美日韩综合一区二区三区 | 亚洲s码欧洲m码国产av | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲色欲色欲天天天www | 国产成人久久精品流白浆 | 精品国产成人一区二区三区 | 亚洲色成人中文字幕网站 | 国产精品久久国产三级国 | 波多野结衣一区二区三区av免费 | 国内精品久久毛片一区二区 | 丰满少妇高潮惨叫视频 | 狠狠色丁香久久婷婷综合五月 | 精品国产福利一区二区 | 人人爽人人澡人人高潮 | 中文亚洲成a人片在线观看 | 国产一精品一av一免费 | 亚洲精品www久久久 | 亚洲欧美中文字幕5发布 | 欧美人妻一区二区三区 | 日韩欧美成人免费观看 | 精品亚洲韩国一区二区三区 | 日韩av无码中文无码电影 | 国产精品美女久久久久av爽李琼 | 日本饥渴人妻欲求不满 | 波多野结衣aⅴ在线 | 丰满人妻一区二区三区免费视频 | 日本熟妇乱子伦xxxx | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲国产精品成人久久蜜臀 | 久久久久人妻一区精品色欧美 | 久9re热视频这里只有精品 | 欧美精品国产综合久久 | 撕开奶罩揉吮奶头视频 | 欧美人与牲动交xxxx | 精品日本一区二区三区在线观看 | 美女黄网站人色视频免费国产 | 欧美变态另类xxxx | 亚洲欧美国产精品专区久久 | 国产三级精品三级男人的天堂 | 国产口爆吞精在线视频 | www国产亚洲精品久久网站 | 国产人成高清在线视频99最全资源 | 特级做a爰片毛片免费69 | 国产精品高潮呻吟av久久4虎 | 精品偷拍一区二区三区在线看 | 国产成人综合在线女婷五月99播放 | 亚洲国产日韩a在线播放 | 综合人妻久久一区二区精品 | 综合人妻久久一区二区精品 | 亚洲色在线无码国产精品不卡 | 特黄特色大片免费播放器图片 | 国内精品人妻无码久久久影院 | 国产精品国产三级国产专播 | 俄罗斯老熟妇色xxxx | 亚洲码国产精品高潮在线 | 波多野结衣av一区二区全免费观看 | 国产精品鲁鲁鲁 | 美女极度色诱视频国产 | 狠狠色色综合网站 | 亚洲欧美日韩国产精品一区二区 | 人人爽人人爽人人片av亚洲 | 亚洲の无码国产の无码步美 | 精品亚洲韩国一区二区三区 | 欧美第一黄网免费网站 | 精品一区二区三区波多野结衣 | 丰满诱人的人妻3 | 波多野结衣高清一区二区三区 | 久久97精品久久久久久久不卡 | 欧美成人家庭影院 | 波多野结衣高清一区二区三区 | 欧美精品无码一区二区三区 | 国产亲子乱弄免费视频 | 免费人成网站视频在线观看 | 97夜夜澡人人爽人人喊中国片 | 午夜男女很黄的视频 | 在线播放亚洲第一字幕 | 野外少妇愉情中文字幕 | 免费观看激色视频网站 | 18黄暴禁片在线观看 | 精品一二三区久久aaa片 | 一本久道久久综合狠狠爱 | 一本一道久久综合久久 | 久久99精品久久久久久动态图 | 日本熟妇人妻xxxxx人hd | 无码任你躁久久久久久久 | 亲嘴扒胸摸屁股激烈网站 | 国产免费久久精品国产传媒 | 亚洲国产成人av在线观看 | 国产亚洲精品久久久久久久 | 美女极度色诱视频国产 | 少妇无套内谢久久久久 | 成人无码精品1区2区3区免费看 | 国产精品丝袜黑色高跟鞋 | av无码电影一区二区三区 | 丰满岳乱妇在线观看中字无码 | 少妇厨房愉情理9仑片视频 | 永久黄网站色视频免费直播 | 人妻无码久久精品人妻 | 国产成人人人97超碰超爽8 | 欧美日韩综合一区二区三区 | 国产成人人人97超碰超爽8 | 欧美老熟妇乱xxxxx | 日本一区二区更新不卡 | 国产人妻精品一区二区三区 | 亚洲第一网站男人都懂 | 精品人妻人人做人人爽夜夜爽 | 牲欲强的熟妇农村老妇女视频 | 中文字幕+乱码+中文字幕一区 | 亚洲国产精品一区二区美利坚 | 樱花草在线播放免费中文 | 性欧美牲交在线视频 | 少妇无码一区二区二三区 | 国产精品-区区久久久狼 | 精品国精品国产自在久国产87 | 黑人大群体交免费视频 | 无套内谢老熟女 | 最近中文2019字幕第二页 | 午夜福利一区二区三区在线观看 | 国产成人精品三级麻豆 | 精品一区二区不卡无码av | 俺去俺来也www色官网 | 日韩人妻无码中文字幕视频 | 一本色道久久综合亚洲精品不卡 | 青草视频在线播放 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产舌乚八伦偷品w中 | 玩弄少妇高潮ⅹxxxyw | 国产真实夫妇视频 | aⅴ在线视频男人的天堂 | 动漫av一区二区在线观看 | 日韩人妻无码中文字幕视频 | 色五月丁香五月综合五月 | 日本爽爽爽爽爽爽在线观看免 | 欧美日本免费一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 2019午夜福利不卡片在线 | 日本大乳高潮视频在线观看 | 夜先锋av资源网站 | 一本久道久久综合狠狠爱 | 无码吃奶揉捏奶头高潮视频 | 国内揄拍国内精品人妻 | 亚洲精品一区三区三区在线观看 | ass日本丰满熟妇pics | 亚洲综合无码久久精品综合 | 人人澡人人妻人人爽人人蜜桃 | 日本精品高清一区二区 | 亚洲国产精品一区二区美利坚 | 欧美自拍另类欧美综合图片区 | 乱码午夜-极国产极内射 | 国产成人无码av在线影院 | 欧美性猛交xxxx富婆 | 久久综合狠狠综合久久综合88 | 无遮挡啪啪摇乳动态图 | 成人一区二区免费视频 | 国产另类ts人妖一区二区 | 两性色午夜视频免费播放 | 无码人妻出轨黑人中文字幕 | 99精品无人区乱码1区2区3区 | 麻豆av传媒蜜桃天美传媒 | 午夜精品久久久内射近拍高清 | 国产性生大片免费观看性 | 国产亚洲欧美日韩亚洲中文色 | 日日天干夜夜狠狠爱 | 国产女主播喷水视频在线观看 | 美女黄网站人色视频免费国产 | 国产亚av手机在线观看 | 欧美大屁股xxxxhd黑色 | а√天堂www在线天堂小说 | 欧美成人午夜精品久久久 | 欧美精品免费观看二区 | 97se亚洲精品一区 | 亚洲日韩一区二区 | 无码成人精品区在线观看 | 女人被爽到呻吟gif动态图视看 | 国产黑色丝袜在线播放 | 欧美一区二区三区视频在线观看 | 国产成人精品无码播放 | 国产精品亚洲五月天高清 | 精品无人国产偷自产在线 | 麻豆md0077饥渴少妇 | 一本色道久久综合亚洲精品不卡 | 在线天堂新版最新版在线8 | 国产成人无码av一区二区 | 国产精品国产三级国产专播 | 国产免费久久精品国产传媒 | 久久综合激激的五月天 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 午夜性刺激在线视频免费 | 性欧美videos高清精品 | 亚洲一区二区三区 | 久久综合激激的五月天 | 国产情侣作爱视频免费观看 | 亚洲日韩精品欧美一区二区 | 国产精品99久久精品爆乳 | 久久综合给合久久狠狠狠97色 | 日韩精品久久久肉伦网站 | 久久亚洲中文字幕精品一区 | 亚洲最大成人网站 | 免费看男女做好爽好硬视频 | 人人妻在人人 | 精品一区二区三区无码免费视频 | 欧美日韩人成综合在线播放 | 亚洲无人区一区二区三区 | 国产成人一区二区三区在线观看 | 夜夜影院未满十八勿进 | 国产精品久久久久影院嫩草 | 亚洲乱码日产精品bd | 国产精品多人p群无码 | 国产成人午夜福利在线播放 | 丝袜人妻一区二区三区 | 高清不卡一区二区三区 | 免费观看激色视频网站 | 国产 精品 自在自线 | 免费观看又污又黄的网站 | 欧美成人免费全部网站 | 亚洲综合在线一区二区三区 | 国产人妻大战黑人第1集 | 国产在线aaa片一区二区99 | 亚洲色无码一区二区三区 | 成 人影片 免费观看 | 国产内射爽爽大片视频社区在线 | 性欧美牲交xxxxx视频 | 久久精品中文闷骚内射 | 国产精品国产自线拍免费软件 | 人妻少妇精品无码专区二区 | 夜夜影院未满十八勿进 | 国产三级精品三级男人的天堂 | 欧美国产亚洲日韩在线二区 | 欧美激情综合亚洲一二区 | 久久精品国产一区二区三区肥胖 | 青青青手机频在线观看 | 国产卡一卡二卡三 | 亚洲 高清 成人 动漫 | 亚洲综合久久一区二区 | 无码任你躁久久久久久久 | 少妇人妻偷人精品无码视频 | 国产国产精品人在线视 | 97夜夜澡人人双人人人喊 | 噜噜噜亚洲色成人网站 | 久久99精品久久久久久动态图 | 无码纯肉视频在线观看 | 久久99精品久久久久婷婷 | 波多野结衣 黑人 | 宝宝好涨水快流出来免费视频 | 久久久久成人精品免费播放动漫 | 欧美成人免费全部网站 | 奇米影视7777久久精品 | 九月婷婷人人澡人人添人人爽 | а天堂中文在线官网 | 久久aⅴ免费观看 | 福利一区二区三区视频在线观看 | 婷婷五月综合激情中文字幕 | 性欧美牲交在线视频 | 亚洲精品一区二区三区大桥未久 | 国产69精品久久久久app下载 | 内射后入在线观看一区 | 国产午夜福利100集发布 | 国产亚洲精品久久久久久大师 | 亚洲人成人无码网www国产 | 色婷婷av一区二区三区之红樱桃 | 狠狠综合久久久久综合网 | 欧美人与禽zoz0性伦交 | 熟妇人妻无码xxx视频 | 午夜时刻免费入口 | 色婷婷av一区二区三区之红樱桃 | 任你躁国产自任一区二区三区 | 俄罗斯老熟妇色xxxx | 国产av无码专区亚洲a∨毛片 | 内射老妇bbwx0c0ck | 亚洲国产成人av在线观看 | 性色av无码免费一区二区三区 | 亚洲成av人片天堂网无码】 | 国产绳艺sm调教室论坛 | 精品少妇爆乳无码av无码专区 | 大地资源中文第3页 | 国产午夜亚洲精品不卡下载 | 好屌草这里只有精品 | 小泽玛莉亚一区二区视频在线 | aⅴ在线视频男人的天堂 | 国产乱人偷精品人妻a片 | 亚洲成在人网站无码天堂 | 国产片av国语在线观看 | 最近免费中文字幕中文高清百度 | 永久免费观看国产裸体美女 | 亚洲伊人久久精品影院 | 久久视频在线观看精品 | 人人爽人人爽人人片av亚洲 | 久久久国产精品无码免费专区 | 精品少妇爆乳无码av无码专区 | 久久午夜无码鲁丝片秋霞 | 97人妻精品一区二区三区 | 亚洲精品一区二区三区大桥未久 | 撕开奶罩揉吮奶头视频 | 欧美第一黄网免费网站 | 九月婷婷人人澡人人添人人爽 | 中文字幕中文有码在线 | 精品一区二区三区波多野结衣 | 精品无码成人片一区二区98 | 久久国产精品_国产精品 | 88国产精品欧美一区二区三区 | 99re在线播放 | 亚洲综合无码一区二区三区 | 欧美兽交xxxx×视频 | 成人精品视频一区二区 | 一本精品99久久精品77 | 亚洲精品中文字幕久久久久 | 亚洲欧洲日本综合aⅴ在线 | 亚洲精品成a人在线观看 | 扒开双腿疯狂进出爽爽爽视频 | 131美女爱做视频 | 免费乱码人妻系列无码专区 | 中文精品无码中文字幕无码专区 | 久久国内精品自在自线 | 波多野结衣高清一区二区三区 | 国产成人亚洲综合无码 | 成人av无码一区二区三区 | 一本加勒比波多野结衣 | 成年美女黄网站色大免费全看 | 一本久久a久久精品亚洲 | 一本色道婷婷久久欧美 | 国产成人无码av在线影院 | 色婷婷香蕉在线一区二区 | 人妻插b视频一区二区三区 | 亚洲 激情 小说 另类 欧美 | av无码电影一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 窝窝午夜理论片影院 | 精品国偷自产在线 | 日本在线高清不卡免费播放 | 99国产欧美久久久精品 | 99久久婷婷国产综合精品青草免费 | 成 人 免费观看网站 | 7777奇米四色成人眼影 | 三级4级全黄60分钟 | 99国产欧美久久久精品 | 欧美丰满老熟妇xxxxx性 | 欧美人与物videos另类 | 老司机亚洲精品影院 | 麻豆人妻少妇精品无码专区 | 亚洲日韩av一区二区三区四区 | 色综合久久88色综合天天 | 欧美野外疯狂做受xxxx高潮 | 国产极品视觉盛宴 | 午夜福利试看120秒体验区 | 中文无码成人免费视频在线观看 | 西西人体www44rt大胆高清 | 无码任你躁久久久久久久 | 秋霞特色aa大片 | 亚洲一区二区三区无码久久 | 少妇一晚三次一区二区三区 | 丝袜足控一区二区三区 | 国产sm调教视频在线观看 | 国产精品久久久久无码av色戒 | 无码任你躁久久久久久久 | 国产精品免费大片 | 又紧又大又爽精品一区二区 | www国产亚洲精品久久网站 | 国产成人无码av片在线观看不卡 | 欧美国产日产一区二区 | 欧美人与禽zoz0性伦交 | 97人妻精品一区二区三区 | 国产片av国语在线观看 | 国产精品永久免费视频 | 永久免费精品精品永久-夜色 | 日日天日日夜日日摸 | 人人妻人人澡人人爽人人精品 | 亚洲欧美日韩成人高清在线一区 | 在线观看免费人成视频 | 国产精品igao视频网 | 欧美激情综合亚洲一二区 | 成人精品一区二区三区中文字幕 | 日本乱人伦片中文三区 | 一个人看的视频www在线 | 久久综合九色综合欧美狠狠 | 伊在人天堂亚洲香蕉精品区 | а√天堂www在线天堂小说 | 亚洲欧美国产精品久久 | 久久无码专区国产精品s | 99久久婷婷国产综合精品青草免费 | 自拍偷自拍亚洲精品10p | 毛片内射-百度 | 中文字幕久久久久人妻 | 男人和女人高潮免费网站 | 色一情一乱一伦一视频免费看 | 国产亚洲美女精品久久久2020 | 中文字幕无码免费久久9一区9 | 亚洲热妇无码av在线播放 | 国产亚洲欧美日韩亚洲中文色 | 成人免费视频一区二区 | 日本大乳高潮视频在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲の无码国产の无码步美 | 九九综合va免费看 | 亚洲第一无码av无码专区 | 天堂亚洲免费视频 | 色五月丁香五月综合五月 | 麻豆国产人妻欲求不满谁演的 | 欧美老人巨大xxxx做受 | 女人被爽到呻吟gif动态图视看 | 99久久婷婷国产综合精品青草免费 | 一区二区传媒有限公司 | 久久 国产 尿 小便 嘘嘘 | 丰满少妇熟乱xxxxx视频 | 国产麻豆精品一区二区三区v视界 | 亚洲综合精品香蕉久久网 | 久久久国产精品无码免费专区 | 日韩av无码一区二区三区不卡 | 久久国语露脸国产精品电影 | 亚洲春色在线视频 | 久久熟妇人妻午夜寂寞影院 | 欧美黑人乱大交 | 久久人人爽人人人人片 | 人人妻人人澡人人爽欧美一区 | 荫蒂被男人添的好舒服爽免费视频 | av香港经典三级级 在线 | 国产三级久久久精品麻豆三级 | 天天综合网天天综合色 | a片在线免费观看 | 亚洲欧洲日本综合aⅴ在线 | 亚洲一区二区三区偷拍女厕 | 波多野42部无码喷潮在线 | 99久久婷婷国产综合精品青草免费 | 日本一区二区三区免费播放 | 国产色xx群视频射精 | 强辱丰满人妻hd中文字幕 | 三上悠亚人妻中文字幕在线 | 色综合久久网 | 99麻豆久久久国产精品免费 | 国产精品手机免费 | 99久久99久久免费精品蜜桃 | 亚洲日韩一区二区三区 | 青青青手机频在线观看 | 全球成人中文在线 | 中文亚洲成a人片在线观看 | 伊人久久大香线蕉av一区二区 | 国产精品无码永久免费888 | 蜜桃av抽搐高潮一区二区 | 丰满人妻翻云覆雨呻吟视频 | 97久久超碰中文字幕 | 国产香蕉尹人综合在线观看 | 欧美国产日韩亚洲中文 | 久久国产36精品色熟妇 | 亚洲午夜福利在线观看 | 成人欧美一区二区三区黑人 | 国产极品美女高潮无套在线观看 | 无人区乱码一区二区三区 | 色情久久久av熟女人妻网站 | 免费人成网站视频在线观看 | 国产在线精品一区二区三区直播 | 国产精品怡红院永久免费 | 少妇人妻偷人精品无码视频 | 在线 国产 欧美 亚洲 天堂 | 亚洲欧洲日本无在线码 | 波多野结衣乳巨码无在线观看 | 99久久精品无码一区二区毛片 | 久久无码中文字幕免费影院蜜桃 | 丁香花在线影院观看在线播放 | 99久久久无码国产精品免费 | 亚洲精品久久久久久久久久久 | 一二三四社区在线中文视频 | 久久精品无码一区二区三区 | 午夜精品久久久久久久久 | 欧美大屁股xxxxhd黑色 | www成人国产高清内射 | 日本一卡2卡3卡四卡精品网站 | 国内老熟妇对白xxxxhd | 人人妻人人澡人人爽精品欧美 | www国产精品内射老师 | 久久无码中文字幕免费影院蜜桃 | 亚洲中文字幕va福利 | 国产精品igao视频网 | 国产高潮视频在线观看 | 精品久久久中文字幕人妻 | 亚洲综合色区中文字幕 | 成人精品一区二区三区中文字幕 | 日产国产精品亚洲系列 | 成人性做爰aaa片免费看不忠 | 一本大道伊人av久久综合 | 久久久久久亚洲精品a片成人 | 97色伦图片97综合影院 | 国产xxx69麻豆国语对白 | 伊人久久婷婷五月综合97色 | 久久久久久久人妻无码中文字幕爆 | 激情内射亚州一区二区三区爱妻 | 在线播放无码字幕亚洲 | 99精品视频在线观看免费 | 夫妻免费无码v看片 | 99久久亚洲精品无码毛片 | 奇米影视888欧美在线观看 | 亚洲熟妇色xxxxx欧美老妇 | 欧美日韩一区二区免费视频 | 国产精品无码mv在线观看 | 亚洲va中文字幕无码久久不卡 | 亚洲一区二区三区播放 | 久久久成人毛片无码 | 无码人妻出轨黑人中文字幕 | 国产精品人妻一区二区三区四 | 巨爆乳无码视频在线观看 | 午夜无码区在线观看 | 亚洲欧美国产精品久久 | 国产9 9在线 | 中文 | 亚洲熟悉妇女xxx妇女av | 成年美女黄网站色大免费全看 | 日日橹狠狠爱欧美视频 | √天堂资源地址中文在线 | 日本熟妇人妻xxxxx人hd | 麻豆国产97在线 | 欧洲 | 大乳丰满人妻中文字幕日本 | 国产偷抇久久精品a片69 | 亚洲色大成网站www国产 | 玩弄少妇高潮ⅹxxxyw | 亚洲精品一区二区三区在线 | 东京无码熟妇人妻av在线网址 | 爱做久久久久久 | 成 人 免费观看网站 | 丰满人妻精品国产99aⅴ | 久久国语露脸国产精品电影 | 女高中生第一次破苞av | 人妻天天爽夜夜爽一区二区 | 草草网站影院白丝内射 | 蜜桃视频插满18在线观看 | 中文字幕 亚洲精品 第1页 | 午夜精品久久久内射近拍高清 | 乱中年女人伦av三区 | 国产成人一区二区三区在线观看 | 国产亚洲人成a在线v网站 | 思思久久99热只有频精品66 | 免费播放一区二区三区 | 精品人妻人人做人人爽夜夜爽 | 国产艳妇av在线观看果冻传媒 | 麻豆国产人妻欲求不满谁演的 | 久久精品人人做人人综合试看 | 少女韩国电视剧在线观看完整 | 天天做天天爱天天爽综合网 | 亚洲中文字幕在线观看 | 日日碰狠狠躁久久躁蜜桃 | 未满小14洗澡无码视频网站 | 国产又粗又硬又大爽黄老大爷视 | 欧洲精品码一区二区三区免费看 | 久久久精品成人免费观看 | 国产超级va在线观看视频 | 亚洲一区二区三区香蕉 | 永久免费观看美女裸体的网站 | 鲁一鲁av2019在线 | 亚洲国产av精品一区二区蜜芽 | 欧美色就是色 | 中文精品无码中文字幕无码专区 | 中国女人内谢69xxxxxa片 | 亚洲国产日韩a在线播放 | 一本色道久久综合狠狠躁 | 在线成人www免费观看视频 | 国产精品久久久久久亚洲毛片 | 偷窥日本少妇撒尿chinese | 岛国片人妻三上悠亚 | 国产精品va在线播放 | 国产真人无遮挡作爱免费视频 | 欧美激情内射喷水高潮 | 小鲜肉自慰网站xnxx | 亚洲成av人综合在线观看 | 牲交欧美兽交欧美 | 精品无码国产一区二区三区av | 色综合视频一区二区三区 | 亚洲自偷精品视频自拍 | 日本熟妇浓毛 | 国产卡一卡二卡三 | 亚洲欧美精品伊人久久 | 青草青草久热国产精品 | 国产午夜福利亚洲第一 | 男人的天堂2018无码 | 美女扒开屁股让男人桶 | 在线观看欧美一区二区三区 | 精品国产乱码久久久久乱码 | 亚洲国产精品久久人人爱 | 免费无码一区二区三区蜜桃大 | 欧美自拍另类欧美综合图片区 | 男女爱爱好爽视频免费看 | 国产激情艳情在线看视频 | 99久久久国产精品无码免费 | 久久午夜无码鲁丝片 | 久久国产自偷自偷免费一区调 | 国产人妻人伦精品1国产丝袜 | 日日躁夜夜躁狠狠躁 | 亚洲第一网站男人都懂 | 精品无码国产一区二区三区av | 18禁止看的免费污网站 | 中国大陆精品视频xxxx | 九月婷婷人人澡人人添人人爽 | 最近中文2019字幕第二页 | 久久99国产综合精品 | 国产一精品一av一免费 | а√资源新版在线天堂 | 精品国产一区二区三区四区在线看 | 在线看片无码永久免费视频 | 少妇性俱乐部纵欲狂欢电影 | 精品久久久无码中文字幕 | 国产精品内射视频免费 | av人摸人人人澡人人超碰下载 | 亚洲第一网站男人都懂 | 玩弄人妻少妇500系列视频 | 亚洲va中文字幕无码久久不卡 | 国产精品美女久久久久av爽李琼 | 国产成人无码一二三区视频 | 亚洲爆乳精品无码一区二区三区 | 亚洲色无码一区二区三区 | 激情爆乳一区二区三区 | 亚洲天堂2017无码中文 | 国产午夜福利100集发布 | 亚洲国产精品无码一区二区三区 | 国产麻豆精品精东影业av网站 | 无码帝国www无码专区色综合 | 97夜夜澡人人爽人人喊中国片 | 亚洲精品一区二区三区四区五区 | 免费网站看v片在线18禁无码 | 日本精品人妻无码免费大全 | 在线视频网站www色 | 18禁黄网站男男禁片免费观看 | 午夜熟女插插xx免费视频 | 扒开双腿疯狂进出爽爽爽视频 | 强辱丰满人妻hd中文字幕 | 成人精品一区二区三区中文字幕 | 99久久精品日本一区二区免费 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲精品一区二区三区婷婷月 | 亚洲欧美色中文字幕在线 | 亚洲春色在线视频 | 欧美猛少妇色xxxxx | 国产精品高潮呻吟av久久4虎 | 国产口爆吞精在线视频 | 精品国产一区二区三区av 性色 | av在线亚洲欧洲日产一区二区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国内精品久久久久久中文字幕 | 亚洲欧洲日本综合aⅴ在线 | 国产精品无码久久av | 国产在线无码精品电影网 | 天天爽夜夜爽夜夜爽 | 国产精品美女久久久 | 亚洲国产欧美日韩精品一区二区三区 | 成人欧美一区二区三区黑人免费 | 久久精品女人的天堂av | 欧美丰满熟妇xxxx性ppx人交 | 久久99久久99精品中文字幕 | 久久 国产 尿 小便 嘘嘘 | 撕开奶罩揉吮奶头视频 | 人妻少妇被猛烈进入中文字幕 | 麻豆国产丝袜白领秘书在线观看 | 女人被男人爽到呻吟的视频 | 强开小婷嫩苞又嫩又紧视频 | 精品无人区无码乱码毛片国产 | 九月婷婷人人澡人人添人人爽 | 国产欧美精品一区二区三区 | 久久精品无码一区二区三区 | 熟妇人妻无码xxx视频 | 国产亚洲精品久久久久久久 | 97夜夜澡人人爽人人喊中国片 | 国内少妇偷人精品视频免费 | 亚洲成色www久久网站 | 亚洲精品久久久久久一区二区 | 人妻无码久久精品人妻 | 黄网在线观看免费网站 | 日韩精品无码一本二本三本色 | 未满小14洗澡无码视频网站 | 成在人线av无码免观看麻豆 | 久久99精品久久久久久 | 免费播放一区二区三区 | 亚洲中文字幕va福利 | 纯爱无遮挡h肉动漫在线播放 | 色综合久久久久综合一本到桃花网 | 377p欧洲日本亚洲大胆 | 少妇一晚三次一区二区三区 | 久久午夜无码鲁丝片 | 99久久久无码国产aaa精品 | 亚洲七七久久桃花影院 | 欧美成人免费全部网站 | 午夜福利一区二区三区在线观看 | 十八禁视频网站在线观看 | 中文字幕日韩精品一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 亚洲一区二区三区香蕉 | 亚洲国产精品久久久久久 | 免费无码的av片在线观看 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲熟妇色xxxxx欧美老妇y | 图片小说视频一区二区 | 久久久久久av无码免费看大片 | 中文字幕人成乱码熟女app | 国产成人亚洲综合无码 | 国产精品高潮呻吟av久久4虎 | 日本护士xxxxhd少妇 | 性欧美牲交在线视频 | 久久www免费人成人片 | 正在播放老肥熟妇露脸 | 成人欧美一区二区三区 | 麻豆av传媒蜜桃天美传媒 | 日本精品高清一区二区 | 国产成人综合美国十次 | 99久久无码一区人妻 | 妺妺窝人体色www婷婷 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲国产精品久久久久久 | 亚洲精品国产a久久久久久 | 色欲久久久天天天综合网精品 | 国产成人无码专区 | 给我免费的视频在线观看 | 欧美黑人性暴力猛交喷水 | 久久国语露脸国产精品电影 | 又湿又紧又大又爽a视频国产 | 亚洲精品久久久久久一区二区 | 精品人人妻人人澡人人爽人人 | 综合激情五月综合激情五月激情1 | 国产精品人妻一区二区三区四 | 久久久久人妻一区精品色欧美 | 曰韩无码二三区中文字幕 | 欧美zoozzooz性欧美 | 欧美真人作爱免费视频 | 日本一区二区更新不卡 | 一区二区三区高清视频一 | 久久精品一区二区三区四区 | 精品日本一区二区三区在线观看 | 亚洲va中文字幕无码久久不卡 | 男女猛烈xx00免费视频试看 | 亚洲精品无码国产 | 性欧美大战久久久久久久 | 1000部啪啪未满十八勿入下载 | 欧美 丝袜 自拍 制服 另类 | 中文字幕中文有码在线 | 日日摸天天摸爽爽狠狠97 | 亚洲国产精华液网站w | 无码乱肉视频免费大全合集 | 久久精品国产大片免费观看 | 亚洲精品国产a久久久久久 | 露脸叫床粗话东北少妇 | 四虎永久在线精品免费网址 | 一本久久伊人热热精品中文字幕 | 久久国语露脸国产精品电影 | 99久久久无码国产aaa精品 | 精品国产麻豆免费人成网站 | 中文字幕 人妻熟女 | 国产69精品久久久久app下载 | 久久aⅴ免费观看 | 免费男性肉肉影院 | 久久久婷婷五月亚洲97号色 | 波多野结衣av在线观看 | 青青久在线视频免费观看 | 无套内射视频囯产 | 又大又硬又黄的免费视频 | 久久99精品国产.久久久久 | 人人澡人摸人人添 | 2020久久超碰国产精品最新 | 亚洲人成人无码网www国产 | 成人动漫在线观看 | 亚洲欧美色中文字幕在线 | 午夜精品久久久内射近拍高清 | 无套内谢的新婚少妇国语播放 | 亚洲熟妇色xxxxx欧美老妇 | 日本精品高清一区二区 | 亚洲精品国偷拍自产在线麻豆 | 久久久久久久女国产乱让韩 | 国产无遮挡又黄又爽免费视频 | 亚洲精品一区二区三区婷婷月 | 无码国产色欲xxxxx视频 | 鲁大师影院在线观看 | 国产亲子乱弄免费视频 | 最近免费中文字幕中文高清百度 | а√天堂www在线天堂小说 | 性做久久久久久久久 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产尤物精品视频 | 人人爽人人澡人人高潮 | 久久精品99久久香蕉国产色戒 | 久久久久se色偷偷亚洲精品av | 成人片黄网站色大片免费观看 | 亚洲精品国产第一综合99久久 | 好男人www社区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产一区二区三区四区五区加勒比 | 久久久久亚洲精品男人的天堂 | 久久 国产 尿 小便 嘘嘘 | 亚洲乱码国产乱码精品精 | 久久天天躁狠狠躁夜夜免费观看 | 一二三四社区在线中文视频 | 久久国产精品精品国产色婷婷 | 亚洲人成人无码网www国产 | 国产免费久久精品国产传媒 | 伦伦影院午夜理论片 | 美女张开腿让人桶 | 久久久久se色偷偷亚洲精品av | 日本一卡二卡不卡视频查询 | 亚洲成av人片天堂网无码】 | 熟妇人妻无乱码中文字幕 | 精品无人国产偷自产在线 | 网友自拍区视频精品 | 未满成年国产在线观看 | 伊人久久大香线蕉av一区二区 | 欧美日韩一区二区三区自拍 | 久久天天躁狠狠躁夜夜免费观看 | av人摸人人人澡人人超碰下载 | 亚洲国产精华液网站w | 国产高清不卡无码视频 | 国产真实乱对白精彩久久 | 九九综合va免费看 | 欧美日韩人成综合在线播放 | 日韩少妇白浆无码系列 | 天天做天天爱天天爽综合网 | 国产综合在线观看 | 国内精品一区二区三区不卡 | 欧美日本免费一区二区三区 | 国内精品九九久久久精品 | 亚洲国产成人a精品不卡在线 | 精品无码一区二区三区爱欲 | 国产av人人夜夜澡人人爽麻豆 | 成人精品视频一区二区三区尤物 | 天天躁日日躁狠狠躁免费麻豆 | 人妻无码αv中文字幕久久琪琪布 | 国产午夜福利亚洲第一 | 亚洲国产精品无码一区二区三区 | 国产精品久久久久9999小说 | 在线播放无码字幕亚洲 | аⅴ资源天堂资源库在线 | 午夜福利试看120秒体验区 | 无码国产色欲xxxxx视频 | 精品水蜜桃久久久久久久 | 国产美女极度色诱视频www | 久久久久久久久蜜桃 | 亚洲人亚洲人成电影网站色 | 色欲人妻aaaaaaa无码 | 人人爽人人澡人人人妻 | 成人免费视频一区二区 | 国产亚洲精品久久久久久 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久综合激激的五月天 | 国产真实乱对白精彩久久 | 国产亚洲精品久久久久久大师 | 精品无人区无码乱码毛片国产 | 波多野结衣一区二区三区av免费 | 亚洲日韩av一区二区三区四区 | 久久这里只有精品视频9 | 狠狠躁日日躁夜夜躁2020 | 国内揄拍国内精品人妻 | 国产艳妇av在线观看果冻传媒 | 国内精品久久久久久中文字幕 | 久久久久久久久蜜桃 | 国产农村妇女高潮大叫 | 野外少妇愉情中文字幕 | 欧美日韩在线亚洲综合国产人 | 爱做久久久久久 | 亚洲色无码一区二区三区 | 久久精品成人欧美大片 | 性色av无码免费一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲经典千人经典日产 | 久久成人a毛片免费观看网站 | 天天拍夜夜添久久精品大 | 国产精品多人p群无码 | 在线观看国产午夜福利片 | 亚洲人成无码网www | 在线精品国产一区二区三区 | 成人aaa片一区国产精品 | 国内精品久久久久久中文字幕 | 丰满人妻一区二区三区免费视频 | 99久久99久久免费精品蜜桃 | 宝宝好涨水快流出来免费视频 | 亚洲色无码一区二区三区 | 色综合久久久久综合一本到桃花网 | 色狠狠av一区二区三区 | 天堂亚洲免费视频 | 精品乱子伦一区二区三区 | 少妇一晚三次一区二区三区 | yw尤物av无码国产在线观看 | 亚洲一区二区三区四区 | 77777熟女视频在线观看 а天堂中文在线官网 | 婷婷丁香六月激情综合啪 | 国产va免费精品观看 | 一区二区三区乱码在线 | 欧洲 | 亚洲a无码综合a国产av中文 | 18禁黄网站男男禁片免费观看 | 捆绑白丝粉色jk震动捧喷白浆 | 中文字幕无码人妻少妇免费 | 人妻少妇精品无码专区动漫 | av无码电影一区二区三区 | 欧美乱妇无乱码大黄a片 | 亚洲另类伦春色综合小说 | 中文字幕+乱码+中文字幕一区 | 人人妻人人藻人人爽欧美一区 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产一区二区三区日韩精品 | 午夜福利试看120秒体验区 | а√天堂www在线天堂小说 | 亚洲一区二区观看播放 | 亚洲 激情 小说 另类 欧美 | 国产香蕉97碰碰久久人人 | 曰韩少妇内射免费播放 | 国产无遮挡吃胸膜奶免费看 | 日韩av无码中文无码电影 | 99久久久无码国产aaa精品 | 亚洲理论电影在线观看 | 51国偷自产一区二区三区 | 亚洲一区二区三区 | 无码成人精品区在线观看 | 欧美兽交xxxx×视频 | 无码精品国产va在线观看dvd | 精品一二三区久久aaa片 | 亚洲国产av精品一区二区蜜芽 | 女人被男人躁得好爽免费视频 | 日本va欧美va欧美va精品 | 日本一卡2卡3卡四卡精品网站 | 一本色道久久综合亚洲精品不卡 | 精品 日韩 国产 欧美 视频 | 欧美自拍另类欧美综合图片区 | 国产一区二区三区日韩精品 | 亚洲天堂2017无码中文 | 青春草在线视频免费观看 | 国产精品.xx视频.xxtv | 小泽玛莉亚一区二区视频在线 | 少妇被粗大的猛进出69影院 | a片免费视频在线观看 | 天堂在线观看www | 国产精品无码久久av | 欧美日韩色另类综合 | 久久天天躁狠狠躁夜夜免费观看 | 免费观看黄网站 | 白嫩日本少妇做爰 | 亚洲成熟女人毛毛耸耸多 | 蜜桃臀无码内射一区二区三区 | 人人爽人人澡人人高潮 | 国产av无码专区亚洲a∨毛片 | 欧美日本日韩 | 亚洲欧美色中文字幕在线 | 久久久久亚洲精品中文字幕 | 人人妻人人澡人人爽人人精品 | 精品国产一区二区三区av 性色 | 无码午夜成人1000部免费视频 | 日本大乳高潮视频在线观看 | 无码av最新清无码专区吞精 | 人人妻在人人 | 精品久久综合1区2区3区激情 | 东京无码熟妇人妻av在线网址 | 精品一区二区不卡无码av | 国产成人无码av片在线观看不卡 | 天堂久久天堂av色综合 | 国产真人无遮挡作爱免费视频 | 噜噜噜亚洲色成人网站 | 精品厕所偷拍各类美女tp嘘嘘 | 久久国产精品偷任你爽任你 | 少妇被粗大的猛进出69影院 | 鲁一鲁av2019在线 | 欧美喷潮久久久xxxxx | 人人妻人人澡人人爽欧美一区九九 | 午夜理论片yy44880影院 | 久久综合九色综合欧美狠狠 | 内射欧美老妇wbb | 欧美zoozzooz性欧美 | 亚洲精品成人福利网站 | 亚洲精品久久久久久一区二区 | 正在播放东北夫妻内射 | 无码成人精品区在线观看 | 中文字幕色婷婷在线视频 | 天天躁夜夜躁狠狠是什么心态 | 国产欧美熟妇另类久久久 | 99国产欧美久久久精品 | 日韩欧美中文字幕在线三区 | 黑人粗大猛烈进出高潮视频 | 图片区 小说区 区 亚洲五月 | 噜噜噜亚洲色成人网站 | 少妇的肉体aa片免费 | 天天躁日日躁狠狠躁免费麻豆 | 国产无遮挡又黄又爽免费视频 | 亚洲色在线无码国产精品不卡 | 一本久久a久久精品vr综合 | 奇米影视7777久久精品人人爽 | 久久亚洲日韩精品一区二区三区 | 国产亚洲人成a在线v网站 | 国产亚洲精品久久久久久 | 中国大陆精品视频xxxx | 丰满诱人的人妻3 | 中文亚洲成a人片在线观看 | 狠狠色噜噜狠狠狠狠7777米奇 | 国内精品久久久久久中文字幕 | 日本又色又爽又黄的a片18禁 | 久久精品99久久香蕉国产色戒 | 在线欧美精品一区二区三区 | 国产人妖乱国产精品人妖 | 国内少妇偷人精品视频 | 精品国产一区二区三区四区在线看 | 无码午夜成人1000部免费视频 | a在线亚洲男人的天堂 | 久久综合久久自在自线精品自 | 99麻豆久久久国产精品免费 | 精品久久久无码人妻字幂 | 日日天干夜夜狠狠爱 | 免费无码的av片在线观看 | 国产一区二区三区四区五区加勒比 | 99久久人妻精品免费二区 | 小sao货水好多真紧h无码视频 | 欧洲vodafone精品性 | 亚洲性无码av中文字幕 | 久久婷婷五月综合色国产香蕉 | 骚片av蜜桃精品一区 | 免费网站看v片在线18禁无码 | 久久精品人妻少妇一区二区三区 | 99er热精品视频 | 日韩精品久久久肉伦网站 | 亚洲日本va午夜在线电影 | 国产精品国产自线拍免费软件 | 日韩精品一区二区av在线 | 97久久精品无码一区二区 | 天堂一区人妻无码 | 亚洲国产av美女网站 | 国产真实乱对白精彩久久 | 一本久道久久综合狠狠爱 | 久久午夜无码鲁丝片午夜精品 | 国产精品久久久久久久影院 | 国产亚洲欧美日韩亚洲中文色 | 日本又色又爽又黄的a片18禁 | 天堂无码人妻精品一区二区三区 | 少妇无码av无码专区在线观看 | 九一九色国产 | 伊人色综合久久天天小片 | 久久国产精品萌白酱免费 | 国产特级毛片aaaaaa高潮流水 | 无码乱肉视频免费大全合集 | 国产在线无码精品电影网 | 麻花豆传媒剧国产免费mv在线 | 天海翼激烈高潮到腰振不止 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲小说春色综合另类 | 激情国产av做激情国产爱 | 亚洲熟妇色xxxxx亚洲 | 国产综合久久久久鬼色 | 乱码午夜-极国产极内射 | 精品久久久中文字幕人妻 | 中文字幕人妻丝袜二区 | 久久这里只有精品视频9 | 久久久精品成人免费观看 | 青春草在线视频免费观看 | 国产内射爽爽大片视频社区在线 | 日本欧美一区二区三区乱码 | 国产精品无码mv在线观看 | 波多野结衣aⅴ在线 | 精品无码一区二区三区的天堂 | 亚洲欧洲日本无在线码 | 国产亚洲日韩欧美另类第八页 | 我要看www免费看插插视频 | v一区无码内射国产 | 国产成人精品必看 | 成人免费视频视频在线观看 免费 | 精品欧美一区二区三区久久久 | 亚洲日韩精品欧美一区二区 | 久久久无码中文字幕久... | 国产午夜亚洲精品不卡 | 波多野结衣av在线观看 | 欧美老人巨大xxxx做受 | 扒开双腿疯狂进出爽爽爽视频 | 天堂久久天堂av色综合 | 亚洲欧洲无卡二区视頻 | 亚洲一区二区三区国产精华液 | 国产麻豆精品精东影业av网站 | 成人一在线视频日韩国产 | 7777奇米四色成人眼影 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲精品国产精品乱码不卡 | 男人和女人高潮免费网站 | 久久aⅴ免费观看 | 四虎永久在线精品免费网址 | 草草网站影院白丝内射 | 国产精品久久久午夜夜伦鲁鲁 | 免费看男女做好爽好硬视频 | 一本大道伊人av久久综合 | 两性色午夜免费视频 | 色偷偷人人澡人人爽人人模 | 久久久精品456亚洲影院 | 亚洲精品综合一区二区三区在线 | 少妇性l交大片 | 国产超碰人人爽人人做人人添 | 六十路熟妇乱子伦 | 国产三级精品三级男人的天堂 | 亚洲欧洲日本无在线码 | 亚洲国产av精品一区二区蜜芽 | 日韩精品无码一区二区中文字幕 | 日韩人妻系列无码专区 | 奇米影视7777久久精品人人爽 | 国产电影无码午夜在线播放 | 日韩av无码一区二区三区不卡 | 成人欧美一区二区三区 | 无码一区二区三区在线 | 奇米影视888欧美在线观看 | 欧美人与物videos另类 | 色欲av亚洲一区无码少妇 | 亚洲の无码国产の无码步美 | 久久久国产精品无码免费专区 | 在线观看免费人成视频 | 东京热男人av天堂 | 亚洲成a人片在线观看日本 | 蜜桃视频插满18在线观看 | 久久午夜夜伦鲁鲁片无码免费 | 丰满人妻翻云覆雨呻吟视频 | 水蜜桃亚洲一二三四在线 | 成人欧美一区二区三区黑人免费 | 国内精品久久毛片一区二区 | 国内精品人妻无码久久久影院蜜桃 | 亚洲成av人片天堂网无码】 | 国产精品高潮呻吟av久久 | 国内丰满熟女出轨videos | 久久亚洲a片com人成 | 狠狠亚洲超碰狼人久久 | 国产精品久久久 | 久久久精品456亚洲影院 | 日韩 欧美 动漫 国产 制服 | 亚洲热妇无码av在线播放 | 国产av一区二区精品久久凹凸 | 久久久久人妻一区精品色欧美 | 熟妇人妻中文av无码 | 又粗又大又硬又长又爽 | 中文亚洲成a人片在线观看 | 中文字幕 亚洲精品 第1页 | 在线观看国产午夜福利片 | 九月婷婷人人澡人人添人人爽 | 天天摸天天透天天添 | 成人欧美一区二区三区黑人免费 | 嫩b人妻精品一区二区三区 | 中文字幕人妻无码一夲道 | 中文字幕av无码一区二区三区电影 | 亚洲日本va午夜在线电影 | 爆乳一区二区三区无码 | 一区二区三区乱码在线 | 欧洲 | 亚洲伊人久久精品影院 | 性色av无码免费一区二区三区 | 亚洲成av人片天堂网无码】 | 久久这里只有精品视频9 | 人人妻人人澡人人爽欧美一区九九 | 色情久久久av熟女人妻网站 | 无码国内精品人妻少妇 | 欧美三级a做爰在线观看 | 亚洲综合无码久久精品综合 | 大色综合色综合网站 | 少妇性l交大片欧洲热妇乱xxx | 国产尤物精品视频 | 亚洲精品久久久久中文第一幕 | 中文字幕无码人妻少妇免费 | 成人av无码一区二区三区 | 国产精品无码永久免费888 | 性生交大片免费看l | 网友自拍区视频精品 | 国产在线精品一区二区高清不卡 | 国产精品理论片在线观看 | 亚洲欧美日韩综合久久久 | 欧美猛少妇色xxxxx | 亚洲最大成人网站 | 久久视频在线观看精品 | 亚洲精品一区三区三区在线观看 | 亚洲欧美国产精品专区久久 | 亚洲国产av美女网站 | 欧美国产日产一区二区 | 一本久道高清无码视频 | 中文字幕av伊人av无码av | 国产精品第一区揄拍无码 | 天天躁日日躁狠狠躁免费麻豆 | 丰满岳乱妇在线观看中字无码 | 亚洲aⅴ无码成人网站国产app | 亚洲熟妇色xxxxx亚洲 | 亚洲经典千人经典日产 | 一本大道久久东京热无码av | 最近中文2019字幕第二页 | 一本久久a久久精品vr综合 | 九九在线中文字幕无码 | 日本精品少妇一区二区三区 | 亚洲色欲久久久综合网东京热 | 无码精品人妻一区二区三区av | 天海翼激烈高潮到腰振不止 | 中国女人内谢69xxxxxa片 | 欧美黑人巨大xxxxx | 高清国产亚洲精品自在久久 | 99久久人妻精品免费一区 | 久久婷婷五月综合色国产香蕉 | 精品一二三区久久aaa片 | 中文字幕无码人妻少妇免费 | 色一情一乱一伦 | 久久综合狠狠综合久久综合88 | 初尝人妻少妇中文字幕 | 撕开奶罩揉吮奶头视频 | a片在线免费观看 | 欧美野外疯狂做受xxxx高潮 | 无码帝国www无码专区色综合 | 欧美日韩人成综合在线播放 | 樱花草在线播放免费中文 | 又粗又大又硬毛片免费看 | 无码人妻黑人中文字幕 | 天堂一区人妻无码 | 97精品国产97久久久久久免费 | 四虎影视成人永久免费观看视频 | 亚洲精品久久久久久久久久久 | 国产精品99爱免费视频 | 国产成人无码区免费内射一片色欲 | 国产麻豆精品一区二区三区v视界 | 激情内射日本一区二区三区 | 正在播放老肥熟妇露脸 | 中文字幕人妻无码一区二区三区 | 日韩亚洲欧美精品综合 | 亚洲国产欧美国产综合一区 | 精品国产福利一区二区 | 久久久久久亚洲精品a片成人 | 久久亚洲精品中文字幕无男同 | 亚洲国产精品久久久天堂 | 好屌草这里只有精品 | 奇米影视888欧美在线观看 | 高清国产亚洲精品自在久久 | 丁香花在线影院观看在线播放 | 国产成人综合美国十次 | 18禁黄网站男男禁片免费观看 | av无码电影一区二区三区 | 无码av最新清无码专区吞精 | 国产精品久久久久久亚洲影视内衣 | 亚洲色在线无码国产精品不卡 | 欧美熟妇另类久久久久久多毛 | 亚洲精品久久久久久一区二区 | 国产人妖乱国产精品人妖 | 熟妇人妻无乱码中文字幕 | 国产内射爽爽大片视频社区在线 | 99久久无码一区人妻 | 日本成熟视频免费视频 | 偷窥日本少妇撒尿chinese | 奇米影视7777久久精品人人爽 | 精品午夜福利在线观看 | 亚洲天堂2017无码 | 无码中文字幕色专区 | 久久久久久久久888 | 亚洲欧美综合区丁香五月小说 | 亲嘴扒胸摸屁股激烈网站 | 内射后入在线观看一区 | 日本一卡2卡3卡四卡精品网站 | 国产亚洲美女精品久久久2020 | 97精品人妻一区二区三区香蕉 | 国产一区二区三区日韩精品 | 精品偷自拍另类在线观看 | 亚洲 日韩 欧美 成人 在线观看 | 成在人线av无码免费 | 麻豆成人精品国产免费 | 久久国产劲爆∧v内射 | 性生交片免费无码看人 | 国产又粗又硬又大爽黄老大爷视 | 精品国产青草久久久久福利 | 精品水蜜桃久久久久久久 | 国产高清不卡无码视频 | 亚洲人成人无码网www国产 | 国产精品第一区揄拍无码 | 精品国产一区二区三区四区在线看 | 狂野欧美激情性xxxx | 国产精品亚洲а∨无码播放麻豆 | 蜜桃视频韩日免费播放 | 岛国片人妻三上悠亚 | 国产一精品一av一免费 | 精品国产一区二区三区四区 | 亚洲国产精品毛片av不卡在线 | 性色欲情网站iwww九文堂 | 18无码粉嫩小泬无套在线观看 | 人人妻在人人 | 久久久久亚洲精品男人的天堂 | 亚洲狠狠婷婷综合久久 | 亚洲中文字幕av在天堂 | 国产在线无码精品电影网 | 人妻人人添人妻人人爱 | 成人精品视频一区二区 | 欧美日韩视频无码一区二区三 | 亚洲 a v无 码免 费 成 人 a v | 国产成人综合美国十次 | 亚洲狠狠婷婷综合久久 | 白嫩日本少妇做爰 | 国产激情无码一区二区 | 国产乱子伦视频在线播放 | 精品人妻人人做人人爽 | 亚洲综合久久一区二区 | 对白脏话肉麻粗话av | 欧美熟妇另类久久久久久多毛 | 97精品人妻一区二区三区香蕉 | 国产农村乱对白刺激视频 | 国产在热线精品视频 | 精品乱码久久久久久久 | 色婷婷av一区二区三区之红樱桃 | 国产av无码专区亚洲awww | 老子影院午夜伦不卡 | 久久人人爽人人人人片 | 成人欧美一区二区三区 | 日韩精品久久久肉伦网站 | 蜜臀aⅴ国产精品久久久国产老师 | 无码人妻出轨黑人中文字幕 | 樱花草在线社区www | 欧美人与牲动交xxxx | 秋霞特色aa大片 | 国产成人精品久久亚洲高清不卡 | 强伦人妻一区二区三区视频18 | 中文无码伦av中文字幕 | 国产亚洲视频中文字幕97精品 | 3d动漫精品啪啪一区二区中 | 欧美乱妇无乱码大黄a片 | 又大又黄又粗又爽的免费视频 | 国产精品久久久久久久9999 | 久久国产精品二国产精品 | 2019nv天堂香蕉在线观看 | 免费看男女做好爽好硬视频 | 亚洲毛片av日韩av无码 | 欧美35页视频在线观看 | 99riav国产精品视频 | 亚洲国产av美女网站 | 午夜福利不卡在线视频 | 成年美女黄网站色大免费视频 | 日韩精品久久久肉伦网站 | 大地资源中文第3页 | 国产av人人夜夜澡人人爽麻豆 | 丰满人妻精品国产99aⅴ | 无码人妻久久一区二区三区不卡 | 欧美老人巨大xxxx做受 | 蜜桃av抽搐高潮一区二区 | 午夜丰满少妇性开放视频 | 爆乳一区二区三区无码 | 久久久久成人精品免费播放动漫 | 久久综合香蕉国产蜜臀av | 色综合久久久无码网中文 | 漂亮人妻洗澡被公强 日日躁 | 日本大乳高潮视频在线观看 | 国产精品久久久久久无码 | 内射后入在线观看一区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 在线视频网站www色 |