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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等...

發布時間:2025/4/5 编程问答 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LoadSir是一個高效易用,低碳環保,擴展性良好的加載反饋頁管理框架,在加載網絡或其他數據時候,根據需求切換狀態頁面,可添加自定義狀態頁面,如加載中,加載失敗,無數據,網絡超時,占位圖,登錄失效等常用頁面。可配合網絡加載框架,結合返回狀態碼,錯誤碼,數據進行狀態頁自動切換,封裝使用效果更佳。

效果預覽

in Activityin Viewin Fragment
PlaceholderMuitl-FragmentViewPage+Fragment

使用場景

下面為大家常見的加載反饋頁面:

loadingerrortimeout
emptycustomplaceholder

面對這么多狀態頁面,你是不是還在用include的方式,setVisibility(View.VISIBLE/GONE),這種方式即不方便控制,也造成了視圖層級冗余(你要把所有狀態布局include進一個視圖)。如果有一種工具,能把這些事都做了就好了。恰好, ?LoadSir 把這些事做了,接下來我們就來了解一下它。

LoadSir的功能及特點

  • 支持Activity,Fragment,Fragment(v4),View狀態回調

  • 適配多個Fragment切換,及Fragment+ViewPager切換,不會狀態疊加或者狀態錯亂

  • 利用泛型轉換輸入信號和輸出狀態,可根據網絡返回體的狀態碼或者數據返回自動適配狀態頁,實現全局自動狀態切換

  • 只加載唯一一個狀態視圖,不會預加載全部視圖

  • 可保留標題欄(Toolbar,titile view等)

  • 可設置重新加載點擊事件(OnReloadListener)

  • 可自定義狀態頁(繼承Callback類)

  • 可在子線程直接切換狀態

  • 可設置初始狀態頁(常用進度頁作為初始狀態)

  • 不需要設置枚舉或者常量狀態值,直接用狀態頁類類型(xxx.class)作為狀態碼

  • 可擴展狀態頁面,在配置中添加自定義狀態頁

  • 可對單個狀態頁單獨設置點擊事件,根據返回boolean值覆蓋或者結合OnReloadListener使用,如網絡錯誤可跳轉設置頁

  • 可全局單例配置,也可以單獨配置

  • 無預設頁面,低耦合,開發者隨心配置

開始使用LoadSir

LoadSir的使用只需要簡單的三步,三步上籃的三步。

添加依賴

compile?'com.kingja.loadsir:loadsir:1.3.6'

第一步: 配置

全局配置方式

全局配置方式,使用的是單例模式,即獲取的配置都是一樣的。可在Application中配置,添加狀態頁,設置初始化狀態頁,建議使用這種配置方式。

public?class?App?extends?Application?{
????@Override
????public?void?onCreate()?{
????????super.onCreate();
????????LoadSir.beginBuilder()
????.addCallback(new?ErrorCallback())//'添加各種狀態頁
????.addCallback(new?EmptyCallback())
????.addCallback(new?LoadingCallback())
????.addCallback(new?TimeoutCallback())
????.addCallback(new?CustomCallback())
????.setDefaultCallback(LoadingCallback.class)//設置默認狀態頁
????.commit();
????}
}

單獨配置方式

如果你即想保留全局配置,又想在某個特殊頁面加點不同的配置,可采用該方式。

LoadSir?loadSir?=?new?LoadSir.Builder()
????.addCallback(new?LoadingCallback())
????.addCallback(new?EmptyCallback())
????.addCallback(new?ErrorCallback())
????.build();
????????loadService?=?loadSir.register(this,?new?Callback.OnReloadListener()?{
@Override
public?void?onReload(View?v)?{
????//?重新加載邏輯
}
????????});

第二步: 注冊

在Activity中使用

@Override
protected?void?onCreate(@Nullable?Bundle?savedInstanceState)?{
????super.onCreate(savedInstanceState);
????setContentView(R.layout.activity_content);
????//?Your?can?change?the?callback?on?sub?thread?directly.
????LoadService?loadService?=?LoadSir.getDefault().register(this,?new?Callback.OnReloadListener()?{
????????@Override
????????public?void?onReload(View?v)?{
//?重新加載邏輯
????????}
????});
}}

在View 中使用

ImageView?imageView?=?(ImageView)?findViewById(R.id.iv_img);
LoadSir?loadSir?=?new?LoadSir.Builder()
????????.addCallback(new?TimeoutCallback())
????????.setDefaultCallback(LoadingCallback.class)
????????.build();
loadService?=?loadSir.register(imageView,?new?Callback.OnReloadListener()?{
????@Override
????public?void?onReload(View?v)?{
????????loadService.showCallback(LoadingCallback.class);
????????//?重新加載邏輯
????}
});

在Fragment 中使用

由于Fragment添加到Activitiy方式多樣,比較特別,所以在Fragment中注冊方式不同于上面兩種,大家先看模板代碼:

@Nullable
@Override
public?View?onCreateView(LayoutInflater?inflater,?@Nullable?ViewGroup?container,?@Nullable?Bundle
????????savedInstanceState)?{
????//第一步:獲取布局View
????rootView?=?View.inflate(getActivity(),?R.layout.fragment_a_content,?null);
????//第二步:注冊布局View
????LoadService?loadService?=?LoadSir.getDefault().register(rootView,?new?Callback.OnReloadListener()?{
????????@Override
????????public?void?onReload(View?v)?{
//?重新加載邏輯
????????}
????});
????//第三步:返回LoadSir生成的LoadLayout
????return?loadService.getLoadLayout();
}

第三步: 回調

直接回調

protected?void?loadNet()?{
????????//?進行網絡訪問...
????????//?進行回調
????????loadService.showSuccess();//成功回調
????????loadService.showCallback(EmptyCallback.class);//其他回調
????}

轉換器回調 (推薦使用)

如果你不想再每次回調都要手動進行的話,可以選擇注冊的時候加入轉換器,可根據返回的數據,適配對應的回調。

LoadService?loadService?=?LoadSir.getDefault().register(this,?new?Callback.OnReloadListener()?{
????@Override
????public?void?onReload(View?v)?{
//?重新加載邏輯
????}},?new?Convertor()?{@Overridepublic?Class?extends?Callback>?map(HttpResult?httpResult)?{
????????Class?extends?Callback>?resultCode?=?SuccessCallback.class;switch?(httpResult.getResultCode())?{case?SUCCESS_CODE://成功回調if?(httpResult.getData().size()?==?0)?{
????????resultCode?=?EmptyCallback.class;
????}else{
????????resultCode?=?SuccessCallback.class;
????}break;case?ERROR_CODE:
????resultCode?=?ErrorCallback.class;break;
????????}return?resultCode;
????}
});

回調的時候直接傳入轉換器指定的數據類型。

loadService.showWithConvertor(httpResult);

自定義回調頁

LoadSir為了完全解耦,沒有預設任何狀態頁,開發者根據需求自定義自己的回調頁面,比如加載中,沒數據,錯誤,超時等常用頁面,
設置布局及自定義點擊邏輯

public?class?CustomCallback?extends?Callback?{
????@Override
????protected?int?onCreateView()?{
????????return?R.layout.layout_custom;
????}

????@Override
????protected?boolean?onRetry(final?Context?context,?View?view)?{
????????//布局點擊事件
????????Toast.makeText(context.getApplicationContext(),?"Hello?mother?fuck!?:p",?Toast.LENGTH_SHORT).show();
????????//子控件事件
????????(view.findViewById(R.id.iv_gift)).setOnClickListener(new?View.OnClickListener()?{
@Override
public?void?onClick(View?v)?{
????Toast.makeText(context.getApplicationContext(),?"It's?your?gift!?:p",?Toast.LENGTH_SHORT).show();
}
????????});
????????return?true;//返回true則覆蓋了register時傳入的重試點擊事件,返回false則兩個都執行
????}

????//是否在顯示Callback視圖的時候顯示原始圖(SuccessView),返回true顯示,false隱藏
????@Override
????public?boolean?getSuccessVisible()?{
????????return?super.getSuccessVisible();
????}

????//將Callback添加到當前視圖時的回調,View為當前Callback的布局View
????@Override
????public?void?onAttach(Context?context,?View?view)?{
????????super.onAttach(context,?view);
????}

????//將Callback從當前視圖刪除時的回調,View為當前Callback的布局View
????@Override
????public?void?onDetach()?{
????????super.onDetach(context,?view);
????}
}

動態修改Callback

loadService?=?LoadSir.getDefault().register(...);
loadService.setCallBack(EmptyCallback.class,?new?Transport()?{
???@Override
???public?void?order(Context?context,?View?view)?{
???????TextView?mTvEmpty?=?(TextView)?view.findViewById(R.id.tv_empty);
???????mTvEmpty.setText("fine,?no?data.?You?must?fill?it!");
???}
});

代碼混淆

-dontwarn?com.kingja.loadsir.**
-keep?class?com.kingja.loadsir.**?{*;}

占位圖布局效果

placeholder效果狀態頁類似ShimmerRecyclerView的效果. LoadSir只用了一個自定義狀態頁PlaceHolderCallback就完成類似的效果,是不是很棒 :p

看到這,想必各位使用LoadSir應該沒問題了,如果還想再進一步了解它的內部結構,可以繼續往下看。

原理解析

流程圖

關鍵類

  • LoadSir:提供單例模式獲取全局唯一實例,內部保存配置信息,根據配置創建LoadService。

  • LoadService:具體操作服務類,提供showSuccess,showCallback,showWithCoverator等方法來進行狀態頁回調。

  • LoadLayout:最終顯示在用戶面前的視圖View,替換了原布局,是LoadService直接操作對象,要顯示的狀態頁的視圖會被添加到LoadLayout上。

  • Callback:狀態頁抽象類,抽象自定義布局和自定義點擊事件兩個方法留給子類實現。

  • Coverator:轉換接口,可將網絡返回實體轉換成對應的狀態頁,達到自動適配狀態頁的目的。

我們直接觀察在Activity中普通加載和使用LoadSir加載視圖的區別

>>>沒使用LoadSir

>>>使用LoadSir

大家可以看到,LoadSir用LoadLayout把原來的布局給替代掉了,原來的布局加在了LoadLayout上,其它自定義的狀態頁也同樣會被加到這個LoadLayout上(顯示的時候),而且LoadLayout的子View只有一個,就是當前要顯示的狀態頁布局,并沒有把當前不顯示的比如加載中布局,錯誤布局,無數據布局加載進來,這也是LoadSir的優點之一,按需加載,并且只加載一個狀態布局。

>>>替換邏輯

public?static?TargetContext?getTargetContext(Object?target)?{
????????ViewGroup?contentParent;
????????Context?context;
????????if?(target?instanceof?Activity)?{
Activity?activity?=?(Activity)?target;
context?=?activity;
contentParent?=?(ViewGroup)?activity.findViewById(android.R.id.content);
????????}?else?if?(target?instanceof?View)?{
View?view?=?(View)?target;
contentParent?=?(ViewGroup)?(view.getParent());
context?=?view.getContext();
????????}?else?{
throw?new?IllegalArgumentException("The?target?must?be?within?Activity,?Fragment,?View.");
????????}
???????...
????????if?(contentParent?!=?null)?{
contentParent.removeView(oldContent);
????????}
????????return?new?TargetContext(context,?contentParent,?oldContent,?childIndex);
????}

大家可以看到,在Activity和View中的情況都比較簡單,直接獲取target的父控件,然后在父控件中替換掉該布局即可。在Fragment中,由于可能多個Fragment的布局View并存在一個父控件里,所以不能簡單地使用父控件刪除子View方式替換,也有可能父控件是ViewPager,不能通過addView()的方式添加LoadLayout。因此Fragment的注冊方式是直接返回了LoadLayout到Activity上。這樣也達到了一樣的目的。

下面是ViewPager+Fragment場景中使用LoadSir的視圖,兩個Fragment用各自的LoadLayout進行視圖分離,避免了狀態頁疊加或錯位。

看到這的童鞋應該也大概知道LoadSir是怎么回事了,如果想明白LoadSir的代碼實現,請繼續往下看。

源碼解析

我們按上面三步上籃的步驟來稍微分析下源碼

>>>第一步:配置

單例模式獲取LoadSir,在LoadSir構造的時候創建默認配置

public?static?LoadSir?getDefault()?{
????????if?(loadSir?==?null)?{
synchronized?(LoadSir.class)?{
????if?(loadSir?==?null)?{
????????loadSir?=?new?LoadSir();
????}
}
????????}
????????return?loadSir;
????}

????private?LoadSir()?{
????????this.builder?=?new?Builder();
????}

Builder主要提供添加狀態頁,和設置默認狀態頁的方法

public?static?class?Builder?{
????????private?List?callbacks?=?new?ArrayList<>();private?Class?extends?Callback>?defaultCallback;public?Builder?addCallback(Callback?callback)?{
callbacks.add(callback);return?this;
????????}public?Builder?setDefaultCallback(Class?extends?Callback>?defaultCallback)?{this.defaultCallback?=?defaultCallback;return?this;
????????}
??????...public?LoadSir?build()?{return?new?LoadSir(this);
????????}
????}

LoadSir提供beginBuilder()…commit()來設置全局配置。

public?class?LoadSir??{
???...
????public?static?Builder?beginBuilder()?{
????????return?new?Builder();
????}

????public?static?class?Builder?{

????????public?void?commit()?{
getDefault().setBuilder(this);
????????}
??????...
????}
}

>>>第二步:注冊

LoadSir注冊后返回的是LoadService,一看名字大家就明白這是服務類,就是我們所說的Service層。

public?LoadService?register(Object?target,?Callback.OnReloadListener?onReloadListener)?{
????????return?register(target,?onReloadListener,?null);
????}

????public??LoadService?register(Object?target,?Callback.OnReloadListener?onReloadListener,?Convertor
convertor)?{
????????TargetContext?targetContext?=?LoadSirUtil.getTargetContext(target);return?new?LoadService<>(convertor,?targetContext,?onReloadListener,?builder);
????}

在LoadService的構造方法中根據target等信息創建Success視圖,并且生成LoadLayout,相當于LoadSir每次注冊都會創建一個LoadLayout。

LoadService(Convertor?convertor,?TargetContext?targetContext,?Callback
.OnReloadListener?onReloadListener,?LoadSir.Builder?builder)?{this.convertor?=?convertor;
????????Context?context?=?targetContext.getContext();
????????View?oldContent?=?targetContext.getOldContent();
????????loadLayout?=?new?LoadLayout(context,?onReloadListener);
????????loadLayout.addCallback(new?SuccessCallback(oldContent,?context,
????onReloadListener));if?(targetContext.getParentView()?!=?null)?{
targetContext.getParentView().addView(loadLayout,?targetContext.getChildIndex(),?oldContent
????????.getLayoutParams());
????????}
????????initCallback(builder);
????}

>>>第三步:回調

LoadService的三個回調方法最終調用的都是loadLayout.showCallback(callback);

public?void?showSuccess()?{
????????loadLayout.showCallback(SuccessCallback.class);
????}

????public?void?showCallback(Class?extends?Callback>?callback)?{
????????loadLayout.showCallback(callback);
????}

????public?void?showWithConvertor(T?t)?{
????????if?(convertor?==?null)?{
throw?new?IllegalArgumentException("You?haven't?set?the?Convertor.");
????????}
????????loadLayout.showCallback(convertor.map(t));
????}

我們直接看LoadLayout的showCallback方法,先做Callback是否配置判斷,然后進行線程安全操作。重點還是showCallbackView(callback);

public?void?showCallback(final?Class?extends?Callback>?callback)?{
????????if?(!callbacks.containsKey(callback))?{
throw?new?IllegalArgumentException(String.format("The?Callback?(%s)?is?nonexistent.",?callback
????????.getSimpleName()));
????????}
????????if?(LoadSirUtil.isMainThread())?{
showCallbackView(callback);
????????}?else?{
postToMainThread(callback);
????????}
????}

這個方法可以說是最后的執行者,就做兩件事,刪除LoadLayout所有子View(重置),添加指定的布局頁View(回調)。

private?void?showCallbackView(Class?extends?Callback>?status)?{
????????if?(getChildCount()?>?0)?{
removeAllViews();
????????}
????????for?(Class?key?:?callbacks.keySet())?{
if?(key?==?status)?{
????addView(callbacks.get(key).getRootView());
}
????????}
????}

自此,LoadSir一個完整的配置,注冊,回調的過程完成了。不知道你們明白了沒,反正我是有點口渴了。

總結

建議在Application中全局配置,在BaseActivity,BaseFragment或者MVP中封裝使用,能極大的減少代碼量,讓你的代碼更加優雅,生活更加愉快。時間和個人能力有限,如果大家發現需要改進的地方,歡迎提交issue。
如果這個庫對你有用的話,也請點個star。

Github傳送門:https://github.com/KingJA/LoadSir

大家都在看

Android仿抖音的音樂旋轉效果

安卓技術架構演進及未來

Android應用安全提升攻略

Android性能優化指南 文末附花絮視頻

歡迎前往安卓巴士博客區投稿,技術成長于分享

期待巴友留言,共同探討學習

總結

以上是生活随笔為你收集整理的activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

在线v | 六月丁香综合 | 伊人干综合 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 波多野结衣小视频 | 免费看片网址 | 九九热在线免费观看 | 国产精品黄色影片导航在线观看 | 一级黄色免费网站 | 中文字幕在线观看网 | 依人成人综合网 | 91精品一区国产高清在线gif | 久久精品在线免费观看 | 果冻av在线| 免费看毛片在线 | 99久久久成人国产精品 | 中国一 片免费观看 | 久久福利电影 | 久久久18 | 99视频在线观看免费 | 国产明星视频三级a三级点| 国内视频1区 | 毛片网在线观看 | www.五月婷婷 | 最新精品视频在线 | 一区二区三区动漫 | 欧美国产一区二区 | 亚洲乱码久久 | 欧美一区二区免费在线观看 | 天天干天天拍天天操 | 日韩二区精品 | 欧美影片 | 国产精品美女在线观看 | 91激情视频在线观看 | 国产精品自拍在线 | 五月天中文字幕mv在线 | 久久久久久综合网天天 | 国产精品99久久久久久有的能看 | 国产精品欧美久久久久天天影视 | 欧美三级高清 | 欧美日韩精品综合 | 中文字幕日本电影 | 日韩精品电影在线播放 | 99精品国产成人一区二区 | 狠狠色丁香婷婷综合久小说久 | 日韩av中文字幕在线免费观看 | 国产乱对白刺激视频在线观看女王 | 在线视频欧美日韩 | 久久久久人人 | 99在线精品视频 | 黄色av观看 | 精品日韩中文字幕 | 国产精品18久久久久久首页狼 | 亚洲va欧美va人人爽春色影视 | 日本三级久久 | 香蕉视频国产在线 | 亚洲午夜精品在线观看 | 亚洲人成在线电影 | 亚洲天天干 | 尤物一区二区三区 | 91亚洲精品久久久久图片蜜桃 | 九九热在线观看 | 中文字幕在线视频免费播放 | 91久草视频 | 免费日韩视| 成人免费视频网 | 在线观看国产亚洲 | 少妇bbw搡bbbb搡bbbb | 色婷婷福利视频 | 天天躁天天操 | 日韩在线大片 | 日韩黄色大片在线观看 | 欧美日韩亚洲在线观看 | av五月婷婷 | 国产精品一区二区三区久久久 | av电影免费看 | 日韩视频a| 在线观看国产 | 久久99精品久久久久蜜臀 | 久久久免费精品国产一区二区 | 久久国产精品久久国产精品 | 成年人黄色免费网站 | 欧美日韩中文在线 | 久久视频精品在线观看 | 91黄色在线看 | 精品一二三四在线 | 狠狠躁夜夜躁人人爽超碰91 | 麻豆视频www | 黄色动态图xx | 免费一级片在线 | 久草网视频| 九九免费在线观看视频 | 久久人人爽爽人人爽人人片av | 成人在线电影观看 | 国产午夜三级 | 不卡在线一区 | 久久久久久久久久久久久久电影 | 亚洲美女精品区人人人人 | 六月丁香综合网 | 色婷婷激情 | 久久最新视频 | 97精品视频在线播放 | 色网av | 一级α片 | 超碰97人| 成人av免费 | 久久久这里有精品 | 国产一二区视频 | 国产成在线观看免费视频 | 欧美日韩国产精品爽爽 | 亚洲综合色激情五月 | 99久久99久久精品国产片果冰 | 亚洲精品高清在线观看 | 国内丰满少妇猛烈精品播 | 国产精品久免费的黄网站 | 国产亚洲成人网 | 91精品欧美| 亚洲h在线播放在线观看h | 97超碰色偷偷 | 久久精品永久免费 | 99热精品国产 | 色视频在线免费观看 | 欧美国产日韩一区二区三区 | 一区二区三区精品在线 | 麻豆久久精品 | 久久xxxx| 欧美日韩伦理一区 | 久久综合久色欧美综合狠狠 | 国内毛片毛片 | 在线免费观看av网站 | 超碰人人av | 亚洲视频aaa| 黄色免费大全 | 一级成人网 | www.av在线播放 | 91精品1区2区 | 97国产大学生情侣白嫩酒店 | 98久9在线 | 免费 | 国产麻豆视频网站 | 激情五月在线观看 | 免费视频一区 | 五月天激情视频在线观看 | 成人小视频免费在线观看 | 在线观看免费黄色 | 亚洲精品视频在线观看免费视频 | 九九在线高清精品视频 | 国产精品免费一区二区三区 | 97色资源 | 综合中文字幕 | 午夜精品成人一区二区三区 | 中文字幕一区二区三区四区视频 | 天躁狠狠躁 | 国产婷婷vvvv激情久 | 国产黄色a | 国产精品婷婷午夜在线观看 | 亚洲精品欧美视频 | 人人澡超碰碰 | 最新91在线视频 | 亚洲精区二区三区四区麻豆 | 色婷婷狠狠五月综合天色拍 | 国产97av| 最近2019好看的中文字幕免费 | 色综合天天天天做夜夜夜夜做 | 婷婷国产一区二区三区 | 国产精品综合在线观看 | 国产特级毛片aaaaaaa高清 | 一区二区视频在线看 | 视频三区在线 | 狠狠躁日日躁夜夜躁av | 精品久久1 | 国产视频在线观看一区 | 高清一区二区 | 国产 日韩 在线 亚洲 字幕 中文 | 亚洲乱码中文字幕综合 | 欧美成人中文字幕 | 狠狠操.com| 久久超 | 日韩一区二区三区免费视频 | 天天操天天射天天爽 | 在线视频黄 | 黄色成人免费电影 | 色婷婷国产精品一区在线观看 | 日本aa在线| 国产精品视频观看 | 免费视频区 | 国产精品大片在线观看 | 91精品国 | 日韩欧美一区二区在线观看 | 色偷偷88888欧美精品久久久 | 蜜臀一区二区三区精品免费视频 | 天堂入口网站 | 国产在线999| 91人人爽久久涩噜噜噜 | 国产精品igao视频网网址 | 久久精品国产免费看久久精品 | 天天摸天天操天天爽 | 99视频精品视频高清免费 | 亚洲国产中文字幕 | 中国一级特黄毛片大片久久 | 久久久久久视频 | 午夜在线免费观看视频 | 欧美久久综合 | 国产高清不卡一区二区三区 | 又黄又刺激又爽的视频 | 99久热在线精品 | www.夜夜| 极品嫩模被强到高潮呻吟91 | 又爽又黄又无遮挡网站动态图 | 亚洲精品视频偷拍 | 久久午夜网 | 色婷婷在线视频 | 日本中文字幕在线一区 | 免费福利视频网 | 亚洲黄色免费网站 | 蜜臀av性久久久久蜜臀av | 98涩涩国产露脸精品国产网 | 欧美精品久久久久久久久久白贞 | 成人中文字幕av | av色一区 | 成人午夜电影在线 | 国产精品第52页 | 亚洲 中文 在线 精品 | 精品99在线 | 国产综合婷婷 | 99精品在线视频观看 | 中文字幕日韩电影 | 成人av资源 | 毛片视频网址 | 男女啪啪视屏 | 国产人在线成免费视频 | av在线播放快速免费阴 | 亚洲精品久久久久久久蜜桃 | 久久国产品 | 日韩欧美在线一区二区 | 欧美性色19p | 人人澡人人草 | 天天操天天干天天干 | 国产精品四虎 | 亚洲精品视 | 免费网站污| 婷婷精品在线视频 | 国产涩图 | 天天曰夜夜爽 | 97色在线视频 | 成人国产精品一区 | 天堂在线一区二区 | 久草精品在线播放 | 日韩黄色网络 | av女优中文字幕在线观看 | 天天干天天干天天干 | 偷拍精偷拍精品欧洲亚洲网站 | 国产无套视频 | 欧美成年黄网站色视频 | 最新免费av在线 | 国产原创在线视频 | 伊人婷婷久久 | av片中文字幕 | 在线观看成人av | 国产91免费观看 | 激情视频免费观看 | 深夜男人影院 | 国产在线一区二区 | 涩涩网站在线播放 | 国产香蕉视频在线观看 | 亚洲mv大片欧洲mv大片免费 | 日韩素人在线观看 | 久久国产经典视频 | 伊人一级| 欧美午夜精品久久久久久浪潮 | 在线观看亚洲精品视频 | 精品99久久久久久 | 9ⅰ精品久久久久久久久中文字幕 | 啪啪午夜免费 | 日韩在线观看你懂的 | 国产尤物在线 | 夜夜高潮夜夜爽国产伦精品 | 国产在线播放观看 | 色婷婷激情五月 | 99精品国产在热久久下载 | 欧美一区二区三区激情视频 | 麻豆高清免费国产一区 | 久久久久久久久久伊人 | 婷婷精品国产欧美精品亚洲人人爽 | 在线观看免费高清视频大全追剧 | 中文不卡视频在线 | 国产精品va在线播放 | 中文字幕精品在线 | 久久草草热国产精品直播 | 亚洲日本va在线观看 | 免费在线中文字幕 | 韩国av不卡| 日本中文字幕久久 | 在线观看麻豆av | 91视频3p| 色停停五月天 | 国产成人精品久久久 | 99九九免费视频 | 黄色免费观看视频 | 在线观看日韩一区 | 免费观看av网站 | 国产成人专区 | 99九九免费视频 | 亚洲老妇xxxxxx | 在线观看国产日韩欧美 | 成人毛片久久 | 天天操操操操操 | 99免费在线视频 | 中文日韩在线 | 成人av在线直播 | 91成人在线观看喷潮 | 欧美精彩视频在线观看 | 欧美日韩视频在线播放 | 亚洲国产欧洲综合997久久, | 久久综合影院 | 久久综合精品国产一区二区三区 | 国产在线a| 久久深夜| 九九日九九操 | 国产香蕉视频在线观看 | 婷婷丁香国产 | 五月宗合网 | 久久久久国产精品免费网站 | 伊人婷婷久久 | 日韩精品欧美一区 | 99亚洲精品视频 | 欧美在线视频精品 | 亚洲麻豆精品 | 在线播放 亚洲 | 一二三四精品 | 91精品国产91p65 | 久久av影院| 亚洲视频电影在线 | 91亚洲夫妻 | 久久精品免视看 | 国产亚洲人成网站在线观看 | 久久黄色小说 | 香蕉视频一级 | 精品在线你懂的 | 国产91粉嫩白浆在线观看 | 日韩av图片| 97精品久久人人爽人人爽 | 欧美成人xxxx | 日韩成人在线一区二区 | a级片在线播放 | 中文在线a√在线 | 久久精品99国产 | 国产日韩欧美在线一区 | 国内精品视频在线 | 不卡电影免费在线播放一区 | 国产午夜三级一二三区 | 国产精品初高中精品久久 | 国产在线观看免费 | 日韩v欧美v日本v亚洲v国产v | 波多野结衣小视频 | 亚洲色五月 | 色婷婷国产 | 国产精品久久久久久久久久久久冷 | 成人在线免费视频 | 99精品视频在线 | 久久99热久久99精品 | 一区二区三区精品在线视频 | 色婷久久| 亚洲国产福利视频 | 亚洲免费视频观看 | 欧美日韩亚洲在线观看 | 国产视频精品免费播放 | 久久国产精品久久精品 | 中文字幕精品视频 | 日韩视频中文字幕 | 国产成人精品久久二区二区 | 久草在线视频网站 | 看av在线| 免费av在| 久久公开免费视频 | 在线观看中文字幕第一页 | 国产精品久久免费看 | 久久久久高清毛片一级 | 亚洲精品国产精品久久99热 | 狠日日| 在线日韩| 黄色1级毛片 | 99久久精品午夜一区二区小说 | 精品久久片 | 日韩二三区 | 中文字幕超清在线免费 | 日日躁天天躁 | 顶级欧美色妇4khd | 在线只有精品 | 最近免费观看的电影完整版 | 中文字幕成人av | 黄色软件视频大全免费下载 | 黄色的网站免费看 | 国产一区在线观看免费 | 国产精品久久久久久久久久三级 | 网址你懂的在线观看 | 在线观看视频你懂 | 欧美黄色高清 | 不卡视频一区二区三区 | 超级碰碰碰免费视频 | 天天操天天干天天爱 | 97在线精品视频 | 国产精品porn | 91久久一区二区 | 日韩av影片在线观看 | 色先锋av资源中文字幕 | 欧洲成人av | 99精品系列 | 精品免费观看视频 | 亚洲精品乱码白浆高清久久久久久 | 在线a人v观看视频 | 久久伦理网 | 国产精品一区二区久久精品 | 国产婷婷一区二区 | 夜夜夜精品 | av一区在线 | 日韩激情在线 | 一区二区三区在线免费观看视频 | 国产高清精| 欧洲精品码一区二区三区免费看 | 91亚洲精品视频 | 97视频人人免费看 | 日本久久久久久 | 国产亚洲精品成人av久久影院 | 99久久99久久精品国产片 | 伊人激情网 | 91视频3p | 九九激情视频 | 久草视频首页 | 中文字幕av网站 | 久久99国产综合精品 | 日韩欧美一区二区在线观看 | 国产精品久久久亚洲 | 丁香花中文字幕 | 日日夜夜噜噜噜 | 久久久福利视频 | 国产精品久久久一区二区三区网站 | 色www免费视频 | 国产视频久久久久 | 欧洲激情在线 | 日本在线观看一区二区三区 | 久草在线资源观看 | 中文字幕有码在线观看 | 免费91麻豆精品国产自产在线观看 | 久久黄色精品视频 | 午夜视频一区二区 | 欧美性色综合 | 国产福利一区二区三区视频 | 91爱看片 | 精品国产99国产精品 | 在线国产一区二区三区 | 午夜私人影院久久久久 | 中文字幕欧美日韩va免费视频 | 成人资源在线 | 亚洲精品高清视频在线观看 | 99热国产在线中文 | 91桃花视频 | 日韩精品大片 | 中文字幕观看av | 亚洲精品在线免费播放 | 99色视频在线 | 亚洲精品伦理在线 | 婷婷综合在线 | 天天做天天爱夜夜爽 | 日韩在线观看一区二区三区 | av电影中文| 成人在线视频免费看 | 欧美激情综合色 | 国产成人黄色网址 | 在线免费观看一区二区三区 | 黄色一级大片免费看 | 四虎海外影库www4hu | 麻豆久久一区二区 | 色综合中文字幕 | 日日久视频 | 久草在线国产 | 综合色播 | 亚洲高清av | 亚洲国产一区在线观看 | 黄色在线看网站 | 久久精品视| 国产精品一区二区三区在线看 | 亚洲成年人在线播放 | 精品一区二区av | 在线中文字幕观看 | 日韩av图片 | 免费观看91 | 欧美午夜精品久久久久久浪潮 | 成人在线免费观看视视频 | 制服丝袜一区二区 | 久久久久久久久久影视 | 美女av在线免费 | 久艹在线免费观看 | 久久成人精品视频 | 欧美亚洲国产一卡 | 92国产精品久久久久首页 | 一级性视频 | 91在线91| 国产毛片久久 | 97在线视频免费观看 | 国产精品无 | 亚洲欧美日韩精品久久奇米一区 | 日韩在线二区 | 国产精品系列在线播放 | 丁香六月网| 日日骑 | 99精品视频免费观看 | 国产91精品一区二区 | 久久国产精品久久国产精品 | 国产成人精品一区二区三区福利 | 亚一亚二国产专区 | 五月天婷婷在线观看视频 | 国产一级久久久 | 国产精品一区在线观看 | 亚洲欧美国产精品久久久久 | 91精选在线观看 | 成人免费看片98欧美 | 亚洲激情精品 | 免费久久视频 | 玖玖综合网 | 丁香六月av | 黄色中文字幕 | 91在线精品观看 | 在线观看一级视频 | 欧美永久视频 | 国产原厂视频在线观看 | 亚洲毛片久久 | 久久夜色精品国产欧美一区麻豆 | 中文字幕在线观看视频网站 | 欧美日韩不卡一区 | 国产经典三级 | 日韩素人在线观看 | 国产精品扒开做爽爽的视频 | 高清av中文字幕 | 国产一级视频在线免费观看 | 一级黄色免费 | 九九热av| 天天射天天艹 | 色鬼综合网 | 欧美精品乱码久久久久 | 国产精品久久久久久久免费观看 | 福利一区二区在线 | 国产99久久久国产精品 | 日韩精品久久久久久中文字幕8 | 亚洲国产欧美在线看片xxoo | 激情网色 | 国产午夜精品在线 | 91女子私密保健养生少妇 | 免费黄色在线 | 久久久.com| 色婷婷福利 | 成人免费91 | 涩涩成人在线 | 免费观看成年人视频 | 国产精品激情偷乱一区二区∴ | www麻豆视频 | 色婷婷视频网 | 国产免费a | av不卡中文字幕 | 国产第一页在线播放 | 99热精品国产一区二区在线观看 | 午夜精品一区二区三区可下载 | 国产精品午夜在线 | 欧美小视频在线观看 | 349k.cc看片app | 亚洲国内精品视频 | 色偷偷888欧美精品久久久 | 日韩久久激情 | 日韩一区二区免费在线观看 | 深爱婷婷网 | www91在线观看 | 99这里只有久久精品视频 | 日本高清中文字幕有码在线 | 色天天综合网 | 中文字幕国语官网在线视频 | 色婷婷导航 | 久久字幕 | 在线观看av不卡 | 久草在线免费资源站 | 久草在线视频在线观看 | 成人毛片在线观看视频 | 久久国产麻豆 | 日本婷婷色 | 中文字幕av最新更新 | 日韩特黄一级欧美毛片特黄 | 五月综合久久 | 97视频人人免费看 | 日本中文字幕在线 | 免费网站污 | 中文字幕一区二区三区在线视频 | 一 级 黄 色 片免费看的 | 日韩精品在线播放 | 免费国产在线观看 | 免费aa大片 | 亚洲午夜久久久久久久久 | av不卡免费看 | 亚洲成人精品av | 在线天堂中文在线资源网 | 国产资源免费 | 中文视频一区二区 | 最新免费中文字幕 | 成人av在线网 | 69精品在线观看 | 久精品在线观看 | 天天爱天天色 | 99这里只有久久精品视频 | 婷婷电影在线观看 | 黄色av成人在线观看 | 在线观看你懂的网址 | 99c视频在线| 日b视频在线观看网址 | 国产精品女同一区二区三区久久夜 | 97香蕉视频 | 国产精品午夜免费福利视频 | 毛片二区 | 亚洲国产精品久久 | 99久久久久久国产精品 | 国产成人在线播放 | 国产精品视频久久 | 在线免费观看国产 | 99 视频 高清| 在线观看91| 99久久精品久久久久久清纯 | 色先锋资源网 | 精品视频在线观看 | 日本激情动作片免费看 | 午夜精品久久久久久久99婷婷 | 日韩小视频| 国产精品毛片一区 | 91福利视频一区 | 99精品在线 | 在线成人免费电影 | www.午夜视频| 99电影 | 日本乱码在线 | 亚洲精品中文字幕在线 | 欧美少妇的秘密 | 天天操狠狠操 | 黄色国产在线观看 | 欧美二区三区91 | 97国产精品一区二区 | 成人动图| 91手机电视| 在线精品视频免费播放 | 91丨九色丨高潮丰满 | 国产视频在线观看一区 | 日韩中文在线播放 | 久久五月天婷婷 | 韩国精品福利一区二区三区 | 亚洲 综合 激情 | 国产成人精品网站 | 久草网站 | 91麻豆精品久久久久久 | 精品免费国产一区二区三区四区 | 狠狠色丁香婷婷综合 | 精品久久久久久亚洲综合网 | 91pony九色丨交换 | 99r在线视频| 狠狠干夜夜爱 | 亚洲国产精品激情在线观看 | 九九九电影免费看 | www.久久91 | 日韩免费视频网站 | 免费又黄又爽视频 | 日韩亚洲在线视频 | 九色琪琪久久综合网天天 | 久久高清免费观看 | 丁香婷婷综合激情五月色 | 国产小视频在线免费观看视频 | 国产日韩欧美在线观看 | 久久精品一二三 | 91片黄在线观看动漫 | 丁香婷婷色综合亚洲电影 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 成人资源在线播放 | 日本中文字幕在线播放 | 亚洲精品中文在线资源 | 香蕉视频在线播放 | 激情综合一区 | 9999毛片| 99热99| 成人av中文字幕在线观看 | 三上悠亚一区二区在线观看 | 成人免费视频网站 | 免费av网站观看 | 亚洲精品中文在线观看 | 三上悠亚一区二区在线观看 | bbbbb女女女女女bbbbb国产 | 国产麻豆电影 | 亚洲黄色精品 | 亚洲理论影院 | 五月天激情婷婷 | 国产一级视频在线免费观看 | 91在线视频| 成人午夜黄色 | 日韩精品一区二区三区高清免费 | 97在线视 | 国产成人福利在线观看 | 国产精品自在线拍国产 | 丁香六月激情婷婷 | 黄色小说视频在线 | 天堂中文在线视频 | 天堂av影院| 国产精品美女久久久久久久 | 黄污视频大全 | 亚洲日本精品视频 | 精品国产一区二区三区蜜臀 | 黄色资源网站 | 99热99 | 日本精品va在线观看 | 在线免费观看涩涩 | 在线中文字幕网站 | 国产欧美精品一区二区三区四区 | 亚洲九九影院 | 婷婷久操 | 国产精品 欧美 日韩 | 国产精品毛片一区二区 | 国产成人av一区二区三区在线观看 | 国产理论免费 | av怡红院 | 婷婷激情综合五月天 | 欧美日韩国产二区三区 | 国产理论在线 | 69av在线播放 | 久久久免费少妇 | 国产视频精品久久 | 国产精品久久久久久久久久久久久 | 国产成人性色生活片 | 国产伦理久久 | 国产精品手机看片 | 国内外成人免费在线视频 | 久久人人爽人人人人片 | 日韩视频二区 | 国产免费中文字幕 | 日韩欧美在线不卡 | 天天草天天干天天 | 日韩电影在线观看一区二区 | 天天久久综合 | 日韩欧美精品一区 | 久久成人高清视频 | 色偷偷88欧美精品久久久 | 伊人网综合在线观看 | 在线黄网站 | 国产免费人人看 | 99这里只有久久精品视频 | 综合色婷婷 | 波多野结衣视频一区二区 | 国产精品久久一区二区无卡 | 中文在线中文资源 | 99久久99久国产黄毛片 | 国产喷水在线 | 久久久精品免费观看 | 视频高清 | 人人舔人人| 成年人app网址 | 国产精品一级视频 | 91九色成人蝌蚪首页 | 在线看免费 | 国产真实在线 | 亚洲激情 | 欧美激情精品久久久久久变态 | 成人av在线影视 | 91精品国产99久久久久久久 | 久久久香蕉视频 | 久久精品视频网址 | 天天天干天天天操 | 91.dizhi永久地址最新 | 在线观看www视频 | 麻豆传媒视频在线免费观看 | 天天做日日爱夜夜爽 | 色婷婷亚洲综合 | 久久精品在线 | 中文字幕精品一区 | 久久亚洲在线 | 日韩免费电影一区二区 | 久久国产二区 | 国产精品美女久久久久久久网站 | 91夜夜夜| 久久国产精品久久精品国产演员表 | 91热精品 | www.黄色 | 天天爽夜夜爽人人爽曰av | 97人人视频| 精品一区二区免费 | 在线观看精品黄av片免费 | 狠狠干天天 | 成人av电影在线播放 | 亚洲精品在线免费看 | av黄色成人 | 国产一区国产二区在线观看 | 亚洲国内精品 | 亚洲国产精品久久久久久 | 日韩在线激情 | 国产小视频精品 | 亚洲欧洲在线视频 | 四虎国产精品成人免费影视 | 国产一级电影免费观看 | 美女性爽视频国产免费app | 国产一线天在线观看 | 亚洲人在线视频 | 麻豆国产视频 | 91高清免费在线观看 | 天天色天天草天天射 | 亚洲国产精品一区二区久久hs | 激情九九 | 激情五月开心 | 人人澡人人添人人爽一区二区 | 成年人在线| 在线性视频日韩欧美 | 中文久久精品 | 中文字幕在线免费播放 | 国产一区 在线播放 | 麻豆果冻剧传媒在线播放 | 国产一级二级视频 | 精品国产福利在线 | 中文字幕在线观看完整 | 97在线观看免费高清完整版在线观看 | 成年人免费观看在线视频 | 天天弄天天干 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 日本三级吹潮在线 | 久久精品99久久久久久2456 | 美女久久久久久久 | 色香蕉在线视频 | 欧美日韩国产综合一区二区 | 免费在线看成人av | 久久毛片视频 | www.天天操.com | 特级片免费看 | 99综合电影在线视频 | 97热久久免费频精品99 | 亚洲成熟女人毛片在线 | 国产最新在线 | 国产在线精品区 | 亚洲激色 | 久久亚洲影院 | 国产精品福利在线观看 | 成人香蕉视频 | 亚洲国产福利视频 | 黄色视屏免费在线观看 | 欧美日韩1区2区 | 欧美日韩啪啪 | 天天射天天干天天 | 天天射天天干 | 国产在线不卡一区 | 精品v亚洲v欧美v高清v | 一区二区理论片 | 在线观看视频你懂的 | 久久国产亚洲 | 91新人在线观看 | av免费试看| 欧美精品久久久久性色 | 免费高清在线观看成人 | 亚洲精品动漫成人3d无尽在线 | 一级特黄aaa大片在线观看 | 又湿又紧又大又爽a视频国产 | a成人v在线 | 国产亚洲精品综合一区91 | 久久99精品久久久久久久久久久久 | 久久免费av电影 | avove黑丝 | 夜夜高潮夜夜爽国产伦精品 | 亚洲激情五月 | 国产热re99久久6国产精品 | 久久久国产精品久久久 | www.夜夜骑.com| 在线国产中文 | 欧美精选一区二区三区 | 日韩视频1| 亚洲精品高清视频在线观看 | 在线国产激情视频 | 亚洲综合色站 | 国产91精品看黄网站 | 99精品视频在线观看 | 午夜久久福利 | 亚洲一区二区天堂 | 在线视频你懂得 | 成人在线视频免费 | 又色又爽又黄高潮的免费视频 | 久久久久久久久国产 | 国产成人精品免高潮在线观看 | 中文字幕在线视频国产 | 久99久中文字幕在线 | 美女在线观看av | 国产一区在线免费观看 | 国产精品专区在线 | 国产精品毛片久久久久久久久久99999999 | 亚洲日本精品视频 | 亚洲一区动漫 | 丝袜美女在线 | 国产精品视频你懂的 | 久久免费视频这里只有精品 | 欧美analxxxx | 91亚洲狠狠婷婷综合久久久 | 丁香在线 | 久久久久麻豆v国产 | 日韩视频在线不卡 | 亚洲三级在线播放 | 毛片精品免费在线观看 | 久久免费黄色网址 | 成人免费影院 | 高清在线一区二区 | 五月天色综合 | 国产一级一级国产 | 波多野结衣在线观看一区 | 操操综合 | 国产日女人 | 日韩和的一区二在线 | 美女黄视频免费看 | 婷婷色网视频在线播放 | 特及黄色片 | 免费黄色在线播放 | 中文区中文字幕免费看 | 成人99免费视频 | 久久超级碰 | 国产1级视频 | 97成人在线观看视频 | 国产精品一区二区三区在线播放 | 国产无吗一区二区三区在线欢 | 午夜精品一区二区三区免费 | 精品久久五月天 | 成人教育av | 久久亚洲专区 | 久久免费播放视频 | 一级片免费视频 | 人人爽人人乐 | 97超碰人人 | 国产午夜精品久久久久久久久久 | 91亚洲狠狠婷婷综合久久久 | 日日爱网址 | 国产精品6999成人免费视频 | 丝袜美女视频网站 | 国产第一页在线观看 | 国产精品 欧美 日韩 | 免费精品在线视频 | 国产一区国产精品 | 中文字幕在线播放日韩 | 精品日韩在线一区 | 摸bbb搡bbb搡bbbb | 日韩在线欧美在线 | 婷婷亚洲综合五月天小说 | 久久婷婷亚洲 | 91精品国产高清自在线观看 | 91麻豆.com| 91视频下载 | 91大神电影 | 日韩影片在线观看 | 中文字幕久久亚洲 | 99精品在线 | 日韩免费看 | 国产黄色一级片 | 中文字幕乱码电影 | 97**国产露脸精品国产 | 国产在线探花 | 国产高清一区二区 | 亚洲日本一区二区在线 | 久久精品一区二区三区国产主播 | 成人av高清在线 | 天天操夜操 | 91传媒免费观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 国产麻豆视频网站 | 国产精品video爽爽爽爽 | 国产精品va最新国产精品视频 | 国产aa精品 | a黄在线观看 | 亚洲va欧美va人人爽 | 精品一区二区三区四区在线 | 久久精品91久久久久久再现 | 免费看污在线观看 | 99国产精品一区二区 | 美女在线免费视频 | 亚洲老妇xxxxxx | www.com久久久| 国产91aaa | 国产视频首页 | 中午字幕在线 | 丁香六月网 | 中文字幕在线观看三区 | 五月婷综合 | 美女视频黄频 | 欧美激情视频一区二区三区 | 亚洲九九影院 | 成年人黄色大片在线 | 蜜臀久久99精品久久久酒店新书 | 久久天天躁狠狠躁亚洲综合公司 | 久久激情精品 | 天天色欧美 | 日韩欧美精品在线观看 | av专区在线 | 欧美另类v | 日韩电影一区二区三区在线观看 | 奇米影视777影音先锋 | 成人欧美一区二区三区黑人麻豆 | 二区三区在线 | 99电影| 久99久在线 | 国产69熟 | www久久国产 |