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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

一行代码实现底部导航栏TabLayout

發布時間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一行代码实现底部导航栏TabLayout 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎關注公眾號:JueCode

app中底部導航欄已經是很常見的控件了,比如微信,簡書,QQ等都有這類控件,都是點擊底部標簽切換界面。主要的實現手段有

  • RadioGroup
  • FragmentTabLayout
  • TabLayout
  • Bottom Navigation

其中TabLayout一般作為頂部的導航欄使用,今天我們基于FragmentTabLayout來實現一個底部導航欄。先看下實現的效果:


今天這個探索會按照下面這個步驟:

  • FrameTabLayout布局
  • 自定義控件
  • 接口封裝
  • 一行代碼使用
  • FrameTabLayout源碼分析

好了,準備開車~~~

1.FrameTabLayout布局

為什么要提下這個布局,其實這個系統自帶的布局比較特殊,要使用系統的id,也就是我們不能自己命名android:id,我們對著具體的布局實現R.layout.myfragment_tab_layout看比較容易明白。 布局其實比較簡單,有幾個點需要注意下的

id是android:id/tabcontent的FrameLayout明顯就是放置內容的,我們的栗子中就是放置Fragment,這個id就是用的系統的不能做更改

id是android:id/tabs的TabWidget顧名思義就是放置底部標簽的,就是上圖中的Home,Contact等等balabala,對的,你猜到了,這個id也是不能改

為了區分,我故意用了兩種高調的顏色作為區分,上圖中綠色的區域就是FrameLayout, 橙色的區域就是TabWidget

<android.support.v4.app.FragmentTabHost xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.juexingzhe.testfragmenttablayout.MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:background="@android:color/holo_green_dark" /><TabWidgetandroid:id="@android:id/tabs"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:layout_gravity="bottom"android:background="@android:color/holo_orange_dark" /></LinearLayout> </android.support.v4.app.FragmentTabHost> 復制代碼

具體為什么id不能改,后面我們分析源碼的時候就知道了,先按下,客官繼續往后看~~~

2.自定義控件MyFragmentTabLayout

這里為了方便我們直接繼承自FragmentTabHost,也沒有自定義屬性(請原諒我偷懶),上來就是加載上面貼出來的布局, dividerDrawable就是用來設置底部標簽欄標簽之間分割線用途。

private void init(){View view = LayoutInflater.from(getContext()).inflate(R.layout.myfragment_tab_layout, this, true);fragmentTabHost = (FragmentTabHost) view.findViewById(android.R.id.tabhost);dividerDrawable = null; } 復制代碼

在繼續往下說之前,我們先看下如果不自定義這個控件,我們是怎么使用FragmentTabHost的,我下面貼出的是示意代碼,不能直接使用的,不過也可以看出來比較繁瑣,也直接證明了封裝的必要性。

fragmentTabHost.setup(getContext(), fragmentManager, android.R.id.tabcontent); TabSpec tabSpec = fragmentTabHost.newTabSpec(……); fragmentTabHost.addTab(tabSpec, fragment.class, bundle); fragmentTabHost.getTabWidget().setDividerDrawable(……); 復制代碼

我們對著上面的示意過程來接著看下自定義MyFragmentTabLayout控件剩下的過程。這個方法其實就是調用setup,方法的原型是setup(Context context, FragmentManager manager, int containerId)第一個context沒什么好說的,需要外界傳入fragmentManager,用來管理fragment,containerId就是用來放置內容的控件id,就是我們上面綠色背景的FrameLayout。

public MyFragmentTabLayout init(FragmentManager fragmentManager) {fragmentTabHost.setup(getContext(), fragmentManager, android.R.id.tabcontent);return this; } 復制代碼

經過上面的過程fragmentTabHost的初始化過程就結束了。有些小伙伴就急了,底部標簽欄還沒見蹤影呢???別急,聽我娓娓道來(逃),底部標簽欄的個數肯定是不能寫死的,最好是根據數據的數量來做決定,google就是這么做的,因此標簽的初始化是要在fragmentTabHost的數據初始化過程中進行。具體實現代碼往下看。

  • fragmentTabHost.newTabSpec這個方法就是用來構造底部標簽欄,需要傳入一個Tag,和一個tabview,我們這里很簡單就是上面圖片下面文字的布局
  • fragmentTabHost.addTab就是構造內容區域(fragment)和底部標簽欄,有需要傳遞給fragment的數據可以通過bundle傳送
  • setDividerDrawable我們這里傳入null,就是不需要分割線,默認是有分割線:

  • setOnTabChangedListener就是設置標簽的點擊事件
public MyFragmentTabLayout creat(){if (fragmentTabLayoutAdapter == null) return null;TabInfo tabInfo;for (int i = 0; i < fragmentTabLayoutAdapter.getCount(); i++){tabInfo = fragmentTabLayoutAdapter.getTabInfo(i);TabSpec tabSpec = fragmentTabHost.newTabSpec(tabInfo.getTabTag()).setIndicator(tabInfo.getTabView());fragmentTabHost.addTab(tabSpec, tabInfo.getFragmentClass(), tabInfo.getBundle());fragmentTabHost.getTabWidget().setDividerDrawable(dividerDrawable);fragmentTabHost.setOnTabChangedListener(new OnTabChangeListener() {@Overridepublic void onTabChanged(String tabId) {int currentTab = fragmentTabHost.getCurrentTab();fragmentTabLayoutAdapter.onClick(currentTab);}});}return this; } 復制代碼

底部標簽布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><ImageViewandroid:id="@+id/img"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextViewandroid:gravity="center"android:id="@+id/tab_text"android:layout_width="match_parent"android:layout_height="wrap_content" /> </LinearLayout> 復制代碼

上面代碼是經過接口封裝的,我們接著往下看

3.接口封裝

我們也是在控件中留出來一個接口做hook,用戶可以通過接口給控件定制數據,定制標簽布局,定制點擊事件

public interface FragmentTabLayoutAdapter{int getCount();TabInfo getTabInfo(int pos);View createView(int pos);void onClick(int pos);} 復制代碼

我們再回顧下上面自定義的過程,標簽的個數通過getCount得到;構造每個標簽需要的數據都從getTabInfo獲得,參數pos就是標簽的位置;每個標簽的布局則通過createView獲得,參數pos同上;onClick就是標簽的點擊事件,參數pos同上。

4.一行代碼使用

到這里自定義導航欄的工作就差不多了,我們看下具體怎么用,首先就是在布局文件中聲明控件,這個布局文件很簡單就是引用我們自定義的控件,沒什么好解釋的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.juexingzhe.testfragmenttablayout.MainActivity"android:orientation="vertical"><com.example.juexingzhe.testfragmenttablayout.MyFragmentTabLayoutandroid:id="@+id/tab_layout"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout> 復制代碼

接下來在代碼中用一行代碼實現即可,傳入fragmentManager進行初始化,然后就是傳入接口FragmentTabLayoutAdapter的實現,我們這里也進行了抽取,提供一個默認的實現,用戶只需要實現createView 定制自己需要顯示的布局和實現onClick定制每個標簽的點擊事件,我們這里為了簡化只是通過一個Toast進行演示。

fragmentTabHost.init(getSupportFragmentManager()).setFragmentTabLayoutAdapter(new DefaultFragmentTabAdapter(Arrays.asList(fragmentClass), Arrays.asList(textViewArray), Arrays.asList(drawables)){@Overridepublic View createView(int pos) {View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.tab_item, null);ImageView imageView = (ImageView) view.findViewById(R.id.img);imageView.setImageResource(drawables[pos]);TextView textView = (TextView) view.findViewById(R.id.tab_text);textView.setText(textViewArray[pos]);return view;}@Overridepublic void onClick(int pos) {Toast.makeText(MainActivity.this, textViewArray[pos] + " be clicked", Toast.LENGTH_SHORT).show();}}).creat(); 復制代碼

是不是說話算話,一行代碼搞定。我們看下DefaultFragmentTabAdapter的實現,默認實現了兩個方法getCount和getTabInfo,第一個方法地球人都知道,第二個方法就是構造每個標簽需要數據信息。

public class DefaultFragmentTabAdapter implements MyFragmentTabLayout.FragmentTabLayoutAdapter {private List<Class> fragmentclass = new ArrayList<>();private List<String> fragmentTag = new ArrayList<>();private List<Integer> drawables = new ArrayList<>();public DefaultFragmentTabAdapter(List<Class> fragmentclass, List<String> fragmentTag, List<Integer> drawables) {this.fragmentclass = fragmentclass;this.fragmentTag = fragmentTag;this.drawables = drawables;}@Overridepublic int getCount() {return fragmentTag.size();}@Overridepublic TabInfo getTabInfo(int pos) {return new TabInfo.Builder(fragmentTag.get(pos), createView(pos), fragmentclass.get(pos)).build();}@Overridepublic View createView(int pos) {return null;}@Overridepublic void onClick(int pos) {} } 復制代碼

稍微提下TabInfo這個數據類,從上面可以看出也是build模式,這里就不多做介紹。幾個屬性,tabTag就是TabSpec需要傳入的Tag;tabView就是底部標簽的布局;fragmentClass就是每個標簽對應的fragment;bundle是fragment對應的數據;backgroundRes就是每個標簽的背景,可以設置點擊時的背景變化。

public class TabInfo {String tabTag;View tabView;Class fragmentClass;Bundle bundle;int backgroundRes;…… } 復制代碼

5.FrameTabLayout源碼分析

我們接著簡單看下FrameTabLayout的源碼,首先就是初始化時見到的setup方法,主要工作在ensureHierarchy方法中,我們接著跟。

public void setup(Context context, FragmentManager manager, int containerId) {ensureHierarchy(context); // Ensure views required by super.setup()super.setup();mContext = context;mFragmentManager = manager;mContainerId = containerId;ensureContent();mRealTabContent.setId(containerId);// We must have an ID to be able to save/restore our state. If// the owner hasn't set one at this point, we will set it ourselves.if (getId() == View.NO_ID) {setId(android.R.id.tabhost);} } 復制代碼

這個方法是跟布局比較密切相關的,也能解釋我們前面說的布局id寫死的問題。如果沒有找到id是android.R.id.tabs的TabWidget,系統會為我們生成一個布局,其中TabWidget就是底部標簽欄,id是android.R.id.tabs和我們上面布局代碼中一樣的;mRealTabContent就是放置內容區域,是一個FrameLayout布局,id是 android.R.id.tabcontent,和我們上面布局代碼FrameLayout是一樣的。

private void ensureHierarchy(Context context) {// If owner hasn't made its own view hierarchy, then as a convenience// we will construct a standard one here.if (findViewById(android.R.id.tabs) == null) {LinearLayout ll = new LinearLayout(context);ll.setOrientation(LinearLayout.VERTICAL);addView(ll, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));TabWidget tw = new TabWidget(context);tw.setId(android.R.id.tabs);tw.setOrientation(TabWidget.HORIZONTAL);ll.addView(tw, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT, 0));FrameLayout fl = new FrameLayout(context);fl.setId(android.R.id.tabcontent);ll.addView(fl, new LinearLayout.LayoutParams(0, 0, 0));mRealTabContent = fl = new FrameLayout(context);mRealTabContent.setId(mContainerId);ll.addView(fl, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 1));}} 復制代碼

我們往下看addTab方法,這個方法就是綁定布局和數據。根據傳入的TabSpec構造TabInfo,然后調用TabHost中的addTab(tabSepc) 方法。

public void addTab(@NonNull TabHost.TabSpec tabSpec, @NonNull Class<?> clss,@Nullable Bundle args) {tabSpec.setContent(new DummyTabFactory(mContext));final String tag = tabSpec.getTag();final TabInfo info = new TabInfo(tag, clss, args);if (mAttached) {// If we are already attached to the window, then check to make// sure this tab's fragment is inactive if it exists. This shouldn't// normally happen.info.fragment = mFragmentManager.findFragmentByTag(tag);if (info.fragment != null && !info.fragment.isDetached()) {final FragmentTransaction ft = mFragmentManager.beginTransaction();ft.detach(info.fragment);ft.commit();}}mTabs.add(info);addTab(tabSpec); } 復制代碼

在addTab(tabSepc) 方法中mTabWidget.addView(tabIndicator)就是添加底部標簽,那么Fragment呢?猜下應該是在setCurrentTab(0)進行添加,我們往下看。

public void addTab(TabSpec tabSpec) {……mTabWidget.addView(tabIndicator);mTabSpecs.add(tabSpec);if (mCurrentTab == -1) {setCurrentTab(0);}} 復制代碼

在setCurrentTab方法中會調用invokeOnTabChangeListener()方法,最后調用onTabChanged方法,FragmentTabHost是實現了OnTabChangeListener接口,我們再回到FragmentTabHost往下看

private void invokeOnTabChangeListener() {if (mOnTabChangeListener != null) {mOnTabChangeListener.onTabChanged(getCurrentTabTag());} }/*** Interface definition for a callback to be invoked when tab changed*/ public interface OnTabChangeListener {void onTabChanged(String tabId); } 復制代碼

先調用doTabChanged,然后會處理我們定義的點擊事件,我們往下看doTabChanged方法。如果存在fragment就直接attach,否則先Fragment.instantiate構造Fragment,然后通過add方法進行添加??吹竭@里整個流程也就清楚了。

public void onTabChanged(String tabId) {if (mAttached) {final FragmentTransaction ft = doTabChanged(tabId, null);if (ft != null) {ft.commit();}}if (mOnTabChangeListener != null) {mOnTabChangeListener.onTabChanged(tabId);} }private FragmentTransaction doTabChanged(@Nullable String tag,@Nullable FragmentTransaction ft) {final TabInfo newTab = getTabInfoForTag(tag);if (mLastTab != newTab) {if (ft == null) {ft = mFragmentManager.beginTransaction();}if (mLastTab != null) {if (mLastTab.fragment != null) {ft.detach(mLastTab.fragment);}}if (newTab != null) {if (newTab.fragment == null) {newTab.fragment = Fragment.instantiate(mContext,newTab.clss.getName(), newTab.args);ft.add(mContainerId, newTab.fragment, newTab.tag);} else {ft.attach(newTab.fragment);}}mLastTab = newTab; } 復制代碼

6.總結

如果你能看到這里,說明是真愛。使用FragmentTabHost需要注意的就是布局的時候幾個id的問題,更簡單的辦法就是使用我封裝的控件,就沒什么需要注意的了:)

代碼放到網上,有需要的自行下載,別忘了點贊哦。 GitHub地址

今天的自定義FragmentTabLayout之旅就到這里結束了,大家可以下車了,你們的贊是我最大的動力,謝謝!

總結

以上是生活随笔為你收集整理的一行代码实现底部导航栏TabLayout的全部內容,希望文章能夠幫你解決所遇到的問題。

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

婷婷国产一区二区三区 | 色在线免费视频 | 精品99久久 | 91av欧美 | 久久久久日本精品一区二区三区 | 国产精品原创在线 | 在线观看黄网站 | 五月激情在线 | 天天操天天拍 | 在线免费日韩 | 日韩乱码中文字幕 | 久久有精品 | 国模吧一区| 精品亚洲一区二区三区 | 成人影音在线 | 国产一及片 | 日本中文不卡 | 一区二区三区中文字幕在线 | 亚洲精品在线国产 | 欧美一级片免费 | 久久综合五月婷婷 | 成人在线一区二区三区 | 一区二区三区精品在线视频 | 国产区免费在线 | 亚洲国产日韩精品 | 久久精品视频观看 | 天天天色 | 中文字幕一区在线 | 久久精美视频 | 天天综合网在线观看 | 久久色在线观看 | 不卡的av在线播放 | 97精品一区二区三区 | 亚洲第一av在线 | 久久国产乱 | 人人超在线公开视频 | 国产精品一区二区视频 | 精品日韩中文字幕 | 亚洲一区二区视频在线 | 久久亚洲欧美 | 成人精品国产 | 亚洲乱亚洲乱妇 | wwwww.国产| 天天天天色综合 | 毛片永久免费 | 欧美精品一区二区在线观看 | 99热官网 | 又污又黄网站 | 在线成人av | 欧美色就是色 | 高清在线一区二区 | 久久国精品 | 日本三级人妇 | 色婷婷啪啪免费在线电影观看 | 五月花激情 | 91免费在线 | 一区二区三区免费网站 | 亚洲成人国产精品 | 亚洲视频1区2区 | 午夜精品一区二区三区在线 | 欧美aⅴ在线观看 | 亚洲一区网 | 一色屋精品视频在线观看 | 99久久久久久久久久 | 婷婷视频在线 | 麻豆免费在线播放 | 五月天堂网 | 97视频入口免费观看 | 亚洲国产欧美一区二区三区丁香婷 | 91九色视频国产 | 欧美另类xxx| 欧美日韩精品在线观看 | 成片人卡1卡2卡3手机免费看 | 在线综合色| 日本久久久久久科技有限公司 | 麻豆视频免费在线观看 | 少妇自拍av| 天天色综合久久 | 亚洲91精品 | 开心色插 | 久久精品视频在线 | 国产午夜三级一区二区三桃花影视 | 中文字幕超清在线免费 | 久久免费黄色网址 | 日产av在线播放 | 婷婷色中文 | 国产黄色观看 | 91成人免费电影 | a色视频| 亚洲 中文字幕av | 黄色网在线免费观看 | 免费在线看成人av | 亚洲午夜久久久久久久久 | 欧美成人69av | www.成人久久 | 久久天天躁夜夜躁狠狠85麻豆 | 国产精品免费视频网站 | 日韩精品一区二区不卡 | 99精品一区二区三区 | av在线播放一区二区三区 | 欧美午夜精品久久久久久浪潮 | 粉嫩一区二区三区粉嫩91 | 美女在线免费观看视频 | 欧美一级久久久久 | 欧美日本一区 | 探花视频在线版播放免费观看 | 免费观看完整版无人区 | 毛片网站在线看 | 精品国产激情 | www.99在线观看 | 久草剧场 | 欧美吞精 | 综合久久久久 | 中文字幕不卡在线88 | 成人毛片在线视频 | 国产精品第二十页 | 丁香花在线观看免费完整版视频 | 欧美日韩p片| 丁香婷婷深情五月亚洲 | 久久毛片网 | 国产群p | 91手机电视 | 伊人五月天综合 | 狠狠操操操 | 欧产日产国产69 | av中文天堂| 日韩欧美国产成人 | 亚洲春色奇米影视 | 91黄视频在线 | 乱男乱女www7788 | 五月婷婷视频在线 | 深夜激情影院 | 日操干| 国产精品一区久久久久 | 一区二区av | 亚洲精品小视频 | 亚洲人xxx | 成 人 黄 色 视频 免费观看 | 黄色三级av | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲性少妇性猛交wwww乱大交 | 手机av电影在线观看 | 日韩a欧美 | 综合久久久久久 | 欧美精品久久99 | 91色一区二区三区 | 久久久精品国产一区二区三区 | 一区二区三区四区五区在线视频 | 国产小视频福利在线 | 日韩av影视 | 在线a亚洲视频播放在线观看 | 日韩成人看片 | 在线www色| 97日日 | 亚洲欧美久久 | 成人免费大片黄在线播放 | 女人18毛片a级毛片一区二区 | 日本中文在线 | 免费观看成人 | 肉色欧美久久久久久久免费看 | 午夜国产福利在线观看 | 久久久伊人网 | 欧美日韩一区二区在线观看 | 97在线免费观看视频 | 天天爱综合 | av综合站 | 又黄又爽又无遮挡的视频 | 国产精品都在这里 | 激情综合五月 | 99热这里只有精品免费 | 日韩精品亚洲专区在线观看 | 日韩精品视频在线观看免费 | 特黄特色特刺激视频免费播放 | 日本黄色a级大片 | 啪啪免费视频网站 | 4438全国亚洲精品在线观看视频 | av 一区二区三区四区 | 美女免费黄视频网站 | 久久69精品久久久久久久电影好 | avcom在线| 成人aaa毛片 | 夜夜嗨av色一区二区不卡 | 国产综合精品久久 | 婷婷色伊人 | 久久天| 一区二区中文字幕在线播放 | 午夜精品久久久久久久久久久 | 国产91精品一区二区麻豆网站 | 男女激情免费网站 | 在线观看国产麻豆 | 九九久久国产精品 | 日韩区欠美精品av视频 | 天天天干 | 国产成人av免费在线观看 | 婷婷色视频 | 亚洲国产成人精品电影在线观看 | 成人h视频在线 | 亚洲另类在线视频 | 久久久受www免费人成 | 成年人免费看 | 免费在线激情视频 | 亚洲精品永久免费视频 | 国产乱视频| 午夜黄色大片 | 成人在线你懂得 | 久久免费视频7 | 久久香蕉电影 | 久久高清片 | 成人国产网址 | 午夜精品视频一区 | 国产精品免费在线播放 | 在线播放91 | a特级毛片| 久久国产免费 | 麻豆久久精品 | av电影在线播放 | 国产一卡二卡四卡国 | 久久黄色美女 | 亚洲成人av一区 | 一级做a视频 | 久久一区二区三区日韩 | 亚洲欧洲精品一区二区 | 性色av免费看 | 亚洲情婷婷| 青青河边草观看完整版高清 | 久久这里只有精品久久 | 一区二区视频网站 | 久久久久久久av | 麻豆视频免费网站 | 毛片.com| 亚洲激情校园春色 | 一区二区三区四区五区在线 | 国产小视频免费观看 | 国产精品久久99综合免费观看尤物 | 国产一区二区免费在线观看 | 日本精品va在线观看 | 国产精品免费久久久 | 日韩精品久久一区二区 | 99精品区| 射久久久 | 久久综合久久综合久久 | 天天爱天天 | 在线免费看片 | 成人国产精品久久久 | 免费黄色小网站 | 欧美五月婷婷 | 日韩黄色av网站 | 香蕉在线播放 | 久久深夜 | 国产成人精品亚洲日本在线观看 | av网址在线播放 | 一区二区视频欧美 | 欧美精品久久久久久久久久 | 精品96久久久久久中文字幕无 | 欧美日韩精品区 | 久久久久麻豆 | 在线看片日韩 | 韩国在线一区 | 免费97视频 | 久久婷婷久久 | 国产精品自产拍在线观看网站 | 免费黄色激情视频 | 亚洲精品乱码白浆高清久久久久久 | 久久99久久99精品免观看粉嫩 | 伊在线视频 | 色综合久久综合中文综合网 | 狠狠操影视 | 国产精品一区二区62 | 在线观看亚洲国产精品 | 免费国产在线观看 | 日韩一区二区免费播放 | 国产精品久久久网站 | 日韩av在线免费播放 | 亚洲精品在线视频网站 | 91av中文字幕 | 中日韩在线视频 | 天天操夜夜操天天射 | 91成人精品国产刺激国语对白 | 国产日韩精品一区二区三区在线 | 亚洲国内精品视频 | 亚洲成人av电影在线 | 午夜视频在线网站 | 天天干夜夜爱 | 99精品视频在线观看视频 | 综合网在线视频 | 久久亚洲精品国产亚洲老地址 | 在线观看视频一区二区三区 | 日日夜夜操操操操 | 日韩免费小视频 | 午夜国产一区二区 | 亚洲激色 | 成年在线观看 | 久久不射影院 | 国产视频1 | 国产一区二区精品在线 | 天天躁日日躁狠狠躁 | 久久免费一级片 | 亚洲永久av | 欧美aaa大片 | 精品专区一区二区 | 久久国产精品99久久久久 | 国产精品久久一区二区三区不卡 | 日日久视频 | 国产香蕉97碰碰久久人人 | 美女一级毛片视频 | 亚洲激情网站免费观看 | 欧美精品国产综合久久 | 91视频在线观看大全 | 亚洲欧洲中文日韩久久av乱码 | 国产精品每日更新 | 在线观看日韩专区 | 国产91免费在线观看 | 日本不卡一区二区三区在线观看 | 91精品资源| 久艹视频在线观看 | 热久久这里只有精品 | 国产无遮挡又黄又爽在线观看 | 色吊丝av中文字幕 | av免费电影网站 | 97成人资源站 | 香蕉影视app | 久久国产亚洲 | 黄污在线观看 | 久久第四色 | 在线看一区 | 国产手机视频在线观看 | 美女精品国产 | 亚洲涩综合 | www.久久久 | 免费观看午夜视频 | 福利视频| 亚洲伦理一区二区 | 狠狠色噜噜狠狠 | 日本在线观看中文字幕无线观看 | 国产美女网站在线观看 | 手机在线观看国产精品 | 亚洲婷婷网 | 成人 亚洲 欧美 | 欧美另类视频 | 玖玖在线精品 | 激情五月***国产精品 | 久久免费视频4 | av超碰在线观看 | 波多野结衣久久资源 | 最新91在线视频 | 欧美日韩国产精品爽爽 | 人人爽人人看 | 91精品网站在线观看 | 久久中文字幕导航 | 99热这里有精品 | 午夜精品婷婷 | 国产精品精品视频 | 狠狠操影视 | 国产精品成人久久久久久久 | 国产色小视频 | 日韩精品视频免费 | 热久久在线视频 | 久久电影色 | 久久久久在线观看 | 久久在线免费观看视频 | 黄色片毛片 | 久久精品久久精品久久 | 中文字幕 91 | 91在线麻豆 | 日本aaaa级毛片在线看 | 狠狠操夜夜 | 国内精品久久久久久久影视麻豆 | 中文字幕a在线 | 久久99国产精品自在自在app | 最新av免费在线观看 | 国产欧美日韩精品一区二区免费 | 蜜桃视频在线视频 | 日韩欧美国产免费播放 | 国产xxxxx在线观看 | 99福利片 | 国产又粗又长的视频 | 在线免费观看国产视频 | 亚洲人成网站精品片在线观看 | 久草视频手机在线 | 久久综合五月 | 亚洲国产精品久久久 | 久久激情片 | 亚洲精品久久久久www | 久久综合九色99 | 人人澡超碰碰97碰碰碰软件 | 在线精品视频在线观看高清 | 国产精品亚洲精品 | 日韩理论片在线观看 | 热99在线视频 | 国产一二三区av | 国产精品久久久久aaaa | 成人毛片在线观看视频 | 黄污视频网站 | 色资源在线 | 国产 日韩 中文字幕 | 国产精品乱看 | 日韩91在线| 99热.com| 在线免费视频一区 | 国产高清视频免费 | 在线va视频| 欧美日韩国产二区 | 日本特黄一级 | 亚洲乱码国产乱码精品天美传媒 | 国产精品人人做人人爽人人添 | 女人18片毛片90分钟 | 日韩视频免费在线观看 | 亚洲国产美女精品久久久久∴ | 成人一级视频在线观看 | 在线视频91 | 国产小视频网站 | 国产一区精品在线观看 | 欧美午夜一区二区福利视频 | 久久久久欠精品国产毛片国产毛生 | 麻豆一精品传二传媒短视频 | www.国产在线观看 | 日韩三级免费 | 免费亚洲电影 | 日日夜夜天天 | 激情久久伊人 | 日韩videos | 国产精品99久久久久久人免费 | 色综合久久99 | 国产精品久久久久久久久久尿 | 色综合小说 | 国产免费久久精品 | 亚洲精品一区二区网址 | 成人精品福利 | 免费看污黄网站 | 黄色亚洲精品 | 欧美亚洲国产日韩 | 亚洲毛片在线观看. | 久久精品欧美一区 | 色av网站| 国产成人亚洲在线观看 | 久久午夜影视 | 国产99久 | 天天做天天射 | 亚洲精品天天 | 五月天丁香视频 | 麻豆视频免费看 | 99久久综合精品五月天 | 成人毛片一区二区三区 | 人人插人人干 | 在线观看精品视频 | 欧美精品你懂的 | 91丨九色丨高潮丰满 | 久久人人爽爽 | 亚洲一级电影在线观看 | 亚洲国产中文字幕在线观看 | 久久高清 | 欧美analxxxx | 国产精品系列在线 | 亚洲精品成人在线 | 97超视频免费观看 | 91传媒在线看 | 久久久久久久毛片 | 97**国产露脸精品国产 | 国产精品永久久久久久久www | www.久久久com | 欧美日韩高清一区 | 天天射成人 | 免费精品在线视频 | 亚洲精品在线观看av | 超碰在线日本 | 五月黄色 | 福利电影一区二区 | 99精品欧美一区二区三区 | 欧美巨大荫蒂茸毛毛人妖 | 国产一级视频在线 | 精品久久久久久国产偷窥 | 人人揉人人揉人人揉人人揉97 | 福利视频精品 | 区一区二区三区中文字幕 | 高潮久久久| 午夜久久久久久久 | 色综合天天色 | 一二三精品视频 | 日日夜夜精品 | 91亚洲精品久久久蜜桃借种 | 久久尤物电影视频在线观看 | 久久人操 | 国产精品入口麻豆 | 免费观看成人 | 中文字幕在线观看免费高清电影 | 国产伦精品一区二区三区在线 | 久久国内精品 | 欧美日韩国产一区二区三区在线观看 | 午夜精品一区二区三区可下载 | 色在线中文字幕 | 成人在线视频免费观看 | 激情 婷婷 | 色噜噜在线观看 | 国产xxxx做受性欧美88 | aaawww| 免费看一及片 | 看国产黄色片 | 在线91av| 国产精品成人免费精品自在线观看 | 九九视频免费观看视频精品 | 夜夜婷婷 | 在线观看国产日韩 | 日韩午夜在线播放 | 日韩日韩日韩日韩 | 久草在线免费看视频 | 黄色av免费在线 | 精品国产伦一区二区三区免费 | 天天拍天天色 | 奇米影视四色8888 | 91夫妻自拍 | 91一区二区三区在线观看 | 国产黄免费 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 超碰免费成人 | 久久久久亚洲精品中文字幕 | 久久高视频 | 久草精品在线观看 | 国产精品1区2区在线观看 | 日韩在线免费看 | 免费在线观看av片 | 青青草国产免费 | 9999在线视频 | 久久艹国产 | 亚洲免费在线观看视频 | 国产精品国产三级国产不产一地 | 成人免费xxx在线观看 | 精品国产一二三 | 五月婷婷欧美视频 | 午夜国产福利在线 | 色综合久久88色综合天天 | 狠狠干中文字幕 | 欧美激情综合网 | 超碰免费av | 久久综合久色欧美综合狠狠 | 在线观看一区二区精品 | 天天草天天干 | 国内精品久久久久久 | 日本电影黄色 | 九草视频在线观看 | 热re99久久精品国产99热 | avav99| 欧美另类z0zx| 色姑娘综合天天 | 国产一卡久久电影永久 | 九月婷婷色 | 国产亚洲免费的视频看 | 亚洲va欧美va人人爽春色影视 | 成人丁香花 | 一区免费视频 | 四虎在线永久免费观看 | 国产91九色蝌蚪 | 在线观看日韩专区 | 天天操天天操天天操天天操 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产呻吟在线 | 91在线视频网址 | 手机av在线网站 | 99视频这里只有 | 国产一区自拍视频 | 黄色一级大片在线免费看产 | 久久久久久久久久久久久久av | 日韩精品播放 | 五月激情婷婷丁香 | 国产美女久久 | 在线黄色国产电影 | av黄在线播放 | 在线看一级片 | 亚洲人人网 | 久久免费视频1 | 免费观看v片在线观看 | 久久久久亚洲精品中文字幕 | 精品主播网红福利资源观看 | 丝袜美腿在线播放 | 精品在线免费视频 | 久久久免费少妇 | 久久精品观看 | 99久久这里有精品 | www.夜夜干.com | 精品久久久久久综合日本 | 91九色在线观看 | 激情综合五月天 | av在线播放国产 | 日日天天 | 亚洲精品在线视频观看 | 亚洲自拍自偷 | 国产三级精品三级在线观看 | 日韩欧美69 | 又黄又刺激的网站 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 丁香av| 综合影视| 亚洲影视九九影院在线观看 | 免费av在线| 免费在线日韩 | 欧美日韩国产在线观看 | 91av电影在线 | 色噜噜日韩精品欧美一区二区 | 国产精品自产拍在线观看中文 | 五月婷综合 | 久久区二区 | 月下香电影 | 久久久2o19精品 | 久久艹国产视频 | av黄色大片 | 国产午夜精品一区二区三区四区 | 日本女人逼| 中文字幕中文字幕中文字幕 | 波多野结衣一区二区 | 91黄色小网站 | 又紧又大又爽精品一区二区 | 在线天堂v| 五月婷婷激情综合网 | 国产一级视频在线 | 天天综合色天天综合 | 国产丝袜 | 久久无码av一区二区三区电影网 | 在线免费视频一区 | 亚洲国产精彩中文乱码av | 精品国模一区二区 | 精品欧美一区二区三区久久久 | 国产精品电影在线 | 69国产成人综合久久精品欧美 | 国产99久久久精品 | 久久久久97国产 | 亚洲高清视频在线观看 | 亚州精品天堂中文字幕 | 欧美精品亚洲二区 | 91.精品高清在线观看 | 99在线观看免费视频精品观看 | 日韩欧美精品在线 | 黄色免费观看 | zzijzzij亚洲日本少妇熟睡 | 奇米影视在线99精品 | 日免费视频 | 日本二区三区在线 | 久久全国免费视频 | 久久久久免费精品国产小说色大师 | 午夜电影av| 久草视频免费 | 日韩a级黄色 | 精品天堂av | 国产一级精品在线观看 | 国产精品久久久久影院日本 | 中文字幕乱码日本亚洲一区二区 | 偷拍福利视频一区二区三区 | 日韩毛片在线免费观看 | 亚洲黄色一级大片 | 香蕉视频在线网站 | 日韩午夜剧场 | 国产最新精品视频 | 亚洲国内精品 | 欧美精品久久久久 | 国产精品美 | 国产精品一区二区免费看 | 亚洲区精品 | 精品在线观 | 中文字幕视频三区 | 亚洲精品视频国产 | 色视频国产直接看 | 99热官网| www.色午夜 | 黄p网站在线观看 | 99热这里只有精品国产首页 | 天天摸天天舔天天操 | 麻豆精品国产传媒 | 午夜精品久久久久久久99 | 国产精品福利小视频 | 国产伦理久久精品久久久久_ | 婷婷激情综合网 | 日韩一区二区三区视频在线 | 超碰av免费 | 91综合久久一区二区 | 97国产一区| 亚洲乱码中文字幕综合 | 91精品电影 | 免费看国产曰批40分钟 | 色九九影院 | 国产色妞影院wwwxxx | 免费观看视频的网站 | 免费在线观看成人av | 国产一区免费观看 | 免费高清看电视网站 | 99久久日韩精品免费热麻豆美女 | 99久久婷婷国产 | 久热免费| 国产高清黄| 精品在线观看视频 | 一本色道久久综合亚洲二区三区 | 免费看一级| 国产成人精品一二三区 | 日本一区二区三区免费看 | 最近中文字幕视频网 | 欧美日本中文字幕 | 亚洲v精品 | 日日干夜夜操视频 | 久久久久免费精品视频 | 97在线视频观看 | 91麻豆高清视频 | 久久er99热精品一区二区三区 | 美女激情影院 | 丁香婷婷激情 | 亚洲精品小视频 | www.777奇米| 伊人色**天天综合婷婷 | 国色天香在线 | 九色91福利| 91麻豆精品国产91久久久无需广告 | 婷婷色网视频在线播放 | 中文字幕av有码 | 日韩专区在线观看 | 亚洲激情婷婷 | 国产亚洲人 | 午夜精品久久久久久久99水蜜桃 | 日韩xxxx视频 | av一级一片 | 国产成人精品三级 | 四虎8848免费高清在线观看 | 久久久久久久99精品免费观看 | 久久69精品久久久久久久电影好 | 久久精品牌麻豆国产大山 | 激情综合网在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 欧美激情综合五月色丁香小说 | 国产精品99久久久久人中文网介绍 | 免费av试看 | 91在线观看视频 | 一区二区三区动漫 | 99视频导航| 色综合狠狠干 | 国产精品高潮呻吟久久av无 | 亚洲精品视频www | 欧美一级日韩免费不卡 | 六月丁香综合 | 一本一本久久a久久精品综合小说 | 国产精品av免费在线观看 | 久久成人国产 | 丁香亚洲| 欧美精品免费一区二区 | 91成人区 | 欧美综合干| 国产女教师精品久久av | 91一区二区三区久久久久国产乱 | 国产尤物视频在线 | 91免费观看视频网站 | 色久网 | 91精品视频在线观看免费 | 99久久精品国产毛片 | 中文av在线播放 | 91中文视频 | 亚洲视频高清 | 狠狠干夜夜操天天爽 | 日韩v在线 | 久久婷婷色综合 | 色资源网在线观看 | 色吧av色av | 久久久久国 | av中文在线 | 亚洲区视频在线观看 | 日韩精品亚洲专区在线观看 | 黄色免费在线看 | 免费91麻豆精品国产自产在线观看 | 亚洲精品一区二区在线观看 | 日韩中文字幕在线 | 在线视频在线观看 | 在线精品一区二区 | 免费成人短视频 | 久久亚洲二区 | 国产成人精品一区二区三区 | 亚洲精品成人在线 | 亚洲一区网 | 99精品视频在线播放免费 | 中文在线a天堂 | 午夜精品一二三区 | 精品国产乱码久久久久久三级人 | 亚洲天堂在线观看完整版 | 久久久久国产一区二区三区 | 亚洲精品www久久久 www国产精品com | 激情久久综合 | 久久免费精品一区二区三区 | www.天天操.com| 亚洲成人网在线 | 国产91精品久久久久 | 精品国产一区二区久久 | 六月婷婷网| 成人性生交视频 | 国产精品久久久av | 久久在线观看 | 日日干网址 | 中文字幕丝袜制服 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲成a人片综合在线 | 国产一区视频免费在线观看 | 国产日韩在线播放 | 久久人人爽人人爽人人 | 九九精品毛片 | 又黄又爽又刺激的视频 | 久久免费国产精品 | 久艹视频免费观看 | 午夜性盈盈| 98久久| 久久久久久高潮国产精品视 | 免费黄在线看 | 亚洲精品mv在线观看 | 国产亚洲视频系列 | 天天躁日日躁狠狠躁av中文 | 不卡视频一区二区三区 | 天天爽天天碰狠狠添 | 欧美一区影院 | 国产成人精品一区二区三区在线 | 欧美日韩首页 | 国产精品99久久久久久久久 | 91视频首页 | 综合激情| 国产精品欧美日韩 | 夜夜躁日日躁狠狠躁 | 日韩av看片| 天堂网av在线 | 91精品视频免费观看 | 成人三级黄色 | 99亚洲国产 | 久久不卡av | 亚洲精品网页 | 99这里只有精品视频 | 正在播放久久 | www.国产在线 | 免费在线播放视频 | 福利视频导航网址 | 国产精品网在线观看 | 精品国产伦一区二区三区观看说明 | 69国产成人综合久久精品欧美 | 午夜在线看片 | 日韩精品一区二区三区水蜜桃 | 色综合久| 欧美一区二区三区不卡 | 亚洲国产大片 | 色吊丝av中文字幕 | 欧美性另类 | 国产精品原创视频 | 亚洲精品字幕在线观看 | 韩国av一区 | 日本狠狠干| 亚洲日本欧美在线 | 在线免费观看亚洲视频 | 日韩aⅴ视频 | 最近中文字幕视频完整版 | 日韩欧美高清一区二区三区 | 美女视频黄在线 | 免费三级骚 | 欧美成年人在线视频 | 日韩欧美高清一区二区 | 精品久久久久_ | 中文字幕在线视频第一页 | 夜夜天天干 | 99精品视频在线播放观看 | 免费看色视频 | 少妇精69xxtheporn | 久久有精品 | 国产精彩视频一区 | 欧美日韩一区二区在线观看 | 青青久草在线视频 | 精品在线观看免费 | 国产精品久久在线 | 国产天天综合 | 又黄又爽又刺激的视频 | 久久久久久麻豆 | 91av片| 美女一级毛片视频 | 99久久婷婷国产综合精品 | 国产视频手机在线 | 中文字幕一区2区3区 | 国产免费av一区二区三区 | 97国产小视频 | 久久网址| 96精品视频| 麻豆一级视频 | 亚洲久在线 | 黄色aa久久| 日本中文字幕网 | 久久免费电影网 | 97精品国产aⅴ | 韩国av在线 | 国产精品久久久久999 | 国产小视频91 | 在线免费观看黄色大片 | 国产伦精品一区二区三区免费 | 51精品国自产在线 | 午夜影院一级 | 国产精品色视频 | 97在线观看免费 | 亚洲一区二区三区毛片 | 精品一区二区精品 | 国产一级在线观看视频 | 国产一区二区在线观看视频 | 欧美一二在线 | 精品国产一区二区三区在线观看 | 精品国产乱码久久 | 丁香婷婷激情啪啪 | 天天天天综合 | 蜜臀久久99精品久久久久久网站 | 久草在线在线视频 | 欧美成人a在线 | 成人h在线 | 婷婷激情五月 | 日韩一区二区在线免费观看 | 国产精品久久久久久久久久不蜜月 | 91精品无人成人www | 国产黄色片在线免费观看 | 欧美另类sm图片 | adc在线观看| 波多野结衣视频一区 | 国产系列在线观看 | 黄色网www | 一区二区国产精品 | 国产成人精品区 | 999久久久久久久久6666 | 国产剧情一区二区在线观看 | 性色在线视频 | 国产一区二区久久精品 | 国产日韩欧美在线影视 | 国产中文字幕视频在线观看 | 国产精品一区二区在线观看 | 久久久国产影院 | 蜜臀av性久久久久av蜜臀妖精 | 国产原创在线视频 | 久久久久久久久久电影 | 国产人成在线视频 | 丁香av | 黄污网站在线 | 国产精品麻豆99久久久久久 | 香蕉网站在线观看 | 精品1区二区 | 91香蕉视频污在线 | 日日夜夜操操操操 | 久久无码精品一区二区三区 | 中文字幕在线观看完整 | 欧美日韩裸体免费视频 | 国产亚洲精品久久久久动 | 国产精品va在线 | 久久久久久久久久久久久影院 | 国色天香在线观看 | 中文久草 | 国产亚洲字幕 | 91亚洲激情| 午夜性生活| 欧美中文字幕久久 | 国产99久久久国产精品免费二区 | 丰满少妇对白在线偷拍 | 久久爱资源网 | 日韩在线视频国产 | 黄www在线观看 | 日韩欧美69| 久草视频首页 | 国产免费美女 | 国产96精品 | 久久美女视频 | 91精品在线免费观看视频 | 国内久久久久久 | 国产黄色特级片 | 久久99热这里只有精品 | 亚洲综合在线视频 | 日韩免费一区二区在线观看 | 国产精品久久一区二区无卡 | 日韩精品在线免费观看 | 亚洲视频免费在线观看 | 日韩精品一区二区三区水蜜桃 | 国产成人三级三级三级97 | 激情一区二区三区欧美 | 三级在线视频观看 | 久久国色夜色精品国产 | 日韩av中文在线观看 | 亚洲精品美女 | 人人插人人澡 | 91桃色视频| 亚洲精品字幕在线观看 | 国产日产精品一区二区三区四区 | 亚洲免费精彩视频 | 国内偷拍精品视频 | 激情视频在线高清看 | 成人在线观看资源 | 麻豆成人精品视频 | 亚洲午夜久久久综合37日本 | 色干综合 | 黄色亚洲大片免费在线观看 | 国产精品毛片一区视频 | 成年人国产精品 | 99热超碰在线 | 欧美一区二区伦理片 | 国产在线观看91 | 成人国产精品一区 | 中文在线免费一区三区 | 国产精品久久久久aaaa | 国产不卡精品 | 最近更新中文字幕 | 麻豆视频91 | 日韩视频区 | 婷婷五月在线视频 | www.av小说 | 4438全国亚洲精品观看视频 |