色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

Android軟鍵盤(pán)遮擋輸入框?五種實(shí)戰(zhàn)方案全面解析與避坑指南

Android軟鍵盤(pán)遮擋輸入框?五種實(shí)戰(zhàn)方案全面解析與避坑指南 簡(jiǎn)介面向Android開(kāi)發(fā)者的軟鍵盤(pán)遮擋問(wèn)題技術(shù)文檔以PDF形式系統(tǒng)匯總了5種實(shí)用解法覆蓋登錄、注冊(cè)、多輸入表單等典型場(chǎng)景。文檔首先深入解析系統(tǒng)adjustResize與adjustPan的工作機(jī)制結(jié)合非透明狀態(tài)欄、沉浸式狀態(tài)欄、ScrollView嵌套、全屏模式等條件說(shuō)明各自?xún)?yōu)缺點(diǎn)、注意事項(xiàng)與失效情況隨后介紹fitsSystemWindows屬性、自定義View監(jiān)聽(tīng)鍵盤(pán)狀態(tài)動(dòng)態(tài)調(diào)整布局、第三方庫(kù)等方案并針對(duì)多輸入框場(chǎng)景給出上下滑動(dòng)的處理思路每種方法都配有適用場(chǎng)景和坑點(diǎn)提醒便于開(kāi)發(fā)者按需選型。特別是對(duì)全屏或沉浸式狀態(tài)欄下adjustResize失效的原因、fitsSystemWindows的padding覆蓋問(wèn)題都有清晰說(shuō)明。資源為單個(gè)PDF文件包體約1004KB可離線(xiàn)查閱已有2533人學(xué)習(xí)下載適合初、中級(jí)Android開(kāi)發(fā)者在需要優(yōu)化輸入體驗(yàn)時(shí)參考。 搞Android開(kāi)發(fā)的人十個(gè)里得有九個(gè)被軟鍵盤(pán)坑過(guò)。你以為改個(gè)windowSoftInputMode就完事了結(jié)果在不同機(jī)型上跑出來(lái)完全兩種效果有的輸入框被頂上去了有的界面直接變形還有的鍵盤(pán)干脆把整個(gè)布局蓋死提交按鈕怎么也夠不著。這個(gè)問(wèn)題看著小處理不好特別影響體驗(yàn)尤其是登錄、聊天、評(píng)論這類(lèi)強(qiáng)輸入場(chǎng)景用戶(hù)一打字就被擋住第一反應(yīng)就是卸載。這篇文章我把實(shí)際項(xiàng)目中驗(yàn)證過(guò)的五種方法整理出來(lái)了從最基本的windowSoftInputMode配置到ScrollView包裹、底部輸入欄動(dòng)態(tài)補(bǔ)償、沉浸式布局適配再到應(yīng)急用的DecorView強(qiáng)制resize方案每種方法都會(huì)說(shuō)明原理、適用場(chǎng)景、完整步驟和踩坑點(diǎn)。不管你是剛接觸Android沒(méi)多久的新手還是被鍵盤(pán)遮擋問(wèn)題折磨過(guò)的老開(kāi)發(fā)都可以在這篇文章里找到對(duì)應(yīng)的解法。1. 先搞清楚軟鍵盤(pán)遮擋的根本原因別急著搜代碼1.1 鍵盤(pán)彈出本質(zhì)上是一次窗口尺寸變化很多人一遇到鍵盤(pán)遮擋輸入框第一反應(yīng)就是上網(wǎng)復(fù)制一段代碼貼上去結(jié)果要么沒(méi)效果要么引入了新的布局問(wèn)題。我建議你先停下來(lái)想明白一件事軟鍵盤(pán)彈出時(shí)系統(tǒng)到底對(duì)你的Activity做了什么。在Android里鍵盤(pán)彈出導(dǎo)致的界面行為本質(zhì)上是系統(tǒng)在調(diào)整應(yīng)用窗口的可見(jiàn)區(qū)域。當(dāng)windowSoftInputMode配置為adjustResize時(shí)系統(tǒng)會(huì)壓縮Activity的可用高度然后重新觸發(fā)布局當(dāng)配置為adjustPan時(shí)系統(tǒng)不壓縮窗口而是直接平移整個(gè)窗口內(nèi)容把焦點(diǎn)所在控件盡量頂?shù)芥I盤(pán)上方。所以這個(gè)問(wèn)題的本質(zhì)不是鍵盤(pán)擋住了輸入框而是窗口尺寸變了之后你的布局沒(méi)有按照預(yù)期的邏輯重新擺放。你的布局根節(jié)點(diǎn)如果是LinearLayout壓縮后高度變小底部?jī)?nèi)容自然被頂出屏幕如果根布局是ScrollView內(nèi)容是可以滾動(dòng)的輸入框大概率能通過(guò)滾動(dòng)顯現(xiàn)出來(lái)如果你用了adjustPan但界面是復(fù)雜層級(jí)平移效果就會(huì)非常奇怪。1.2 為什么同一個(gè)配置在不同手機(jī)上表現(xiàn)不一樣這是最讓人頭疼的地方。同樣的代碼在原生安卓8上正常在國(guó)產(chǎn)定制系統(tǒng)上就失靈。原因有兩點(diǎn)第一部分國(guó)產(chǎn)ROM對(duì)鍵盤(pán)彈出有自己的窗口管理邏輯系統(tǒng)級(jí)的adjustResize觸發(fā)時(shí)機(jī)不穩(wěn)定甚至個(gè)別系統(tǒng)版本會(huì)忽略應(yīng)用配置的adjustResize標(biāo)記。第二如果你的Activity啟用了WindowTranslucentStatus或WindowTranslucentNavigation這類(lèi)沉浸式窗口特性adjustResize的行為就會(huì)被進(jìn)一步干擾鍵盤(pán)彈出時(shí)系統(tǒng)可能只resize了一部分區(qū)域?qū)е螺斎肟蛞廊槐簧w住。所以我的建議是不要只依賴(lài)系統(tǒng)配置優(yōu)先考慮布局層面的適配。系統(tǒng)配置是基礎(chǔ)布局結(jié)構(gòu)才是決定性的。接下來(lái)每種方法我都會(huì)把這兩個(gè)層面的處理一起來(lái)講。2. 方法一windowSoftInputMode配置——最基礎(chǔ)的手段也最容易用錯(cuò)2.1 adjustResize和adjustPan到底怎么選先說(shuō)結(jié)論如果你的界面是可滾動(dòng)的ScrollView、RecyclerView、NestedScrollView等用adjustResize最合適如果界面是固定布局、沒(méi)有滾動(dòng)容器且只有一個(gè)輸入框在屏幕中上部可以用adjustPan。adjustResize的意思是鍵盤(pán)彈出時(shí)系統(tǒng)把窗口的高度縮小然后重新調(diào)用onMeasure和onLayout。如果你的布局能夠響應(yīng)高度變化比如底部控件設(shè)置了alignParentBottom或者整個(gè)頁(yè)面是ScrollView輸入框就能通過(guò)滾動(dòng)露出來(lái)。adjustPan則不做尺寸壓縮而是直接平移整個(gè)窗口。它的實(shí)現(xiàn)比較粗糙遇到復(fù)雜的相對(duì)布局經(jīng)常把不該頂上去的內(nèi)容也頂上去視覺(jué)上很突兀。我一般建議凡是能不用adjustPan就別用。它適合那些極其簡(jiǎn)單、只有一個(gè)EditText、不需要多控件聯(lián)動(dòng)的頁(yè)面。實(shí)際項(xiàng)目中這種頁(yè)面太少了所以adjustPan更多時(shí)候是備選方案。2.2 配置了沒(méi)效果多半是這幾個(gè)原因你可能會(huì)遇到這種情況明明在AndroidManifest.xml里給Activity配了android:windowSoftInputModeadjustResize結(jié)果鍵盤(pán)一彈輸入框照樣被擋住。第一個(gè)原因是你的Activity對(duì)象是AppCompatActivity而且布局根節(jié)點(diǎn)是CoordinatorLayout或者ConstraintLayout這兩個(gè)容器在某些版本下對(duì)高度變化的傳遞是滯后的尤其當(dāng)你使用了fitsSystemWindowstrue時(shí)系統(tǒng)會(huì)把resize后的高度和狀態(tài)欄高度混在一起算結(jié)果就是布局沒(méi)有按預(yù)期壓縮。第二個(gè)原因是主題配置。如果你在主題里設(shè)置了windowFullscreentrue或者windowNoTitletrue在某些系統(tǒng)版本上adjustResize會(huì)失效。解決方法是不要直接開(kāi)全屏而是用WindowInsets去隱藏狀態(tài)欄。第三個(gè)原因是很多開(kāi)發(fā)者喜歡在onCreate里對(duì)根布局動(dòng)態(tài)做高度賦值比如ViewGroup.LayoutParams.MATCH_PARENT。這個(gè)操作沒(méi)問(wèn)題但如果你在鍵盤(pán)彈出后又手動(dòng)修改了布局高度就會(huì)和系統(tǒng)的resize形成競(jìng)爭(zhēng)最終行為不可預(yù)測(cè)。!-- AndroidManifest.xml 中的Activity配置示例 -- activity android:name.MainActivity android:windowSoftInputModeadjustResize /如果你確認(rèn)了這三個(gè)問(wèn)題都不存在adjustResize還是沒(méi)效果那直接跳到方法三用手動(dòng)監(jiān)聽(tīng)鍵盤(pán)高度去補(bǔ)償那是最穩(wěn)的。3. 方法二用ScrollView/NestedScrollView包一層讓輸入框自己滾上來(lái)3.1 核心思想可滾動(dòng)容器天然適應(yīng)鍵盤(pán)如果你的頁(yè)面不是聊天那種底部固定輸入欄而是表單、發(fā)布頁(yè)這類(lèi)內(nèi)容式布局我的建議是直接把根布局換成ScrollView或NestedScrollView配合adjustResize。原理不復(fù)雜窗口高度被鍵盤(pán)壓縮后ScrollView的內(nèi)容高度依然大于可視高度它就會(huì)變成可滾動(dòng)狀態(tài)。用戶(hù)點(diǎn)擊輸入框時(shí)輸入框會(huì)自動(dòng)滾動(dòng)到可見(jiàn)區(qū)域而且系統(tǒng)還會(huì)自動(dòng)把你焦點(diǎn)所在的位置滾動(dòng)到鍵盤(pán)上方體驗(yàn)非常自然。實(shí)際項(xiàng)目里我更推薦NestedScrollView而不是老舊的ScrollView原因是它能更好地配合AppBarLayout、RecyclerView這些現(xiàn)代組件做嵌套滾動(dòng)而且對(duì)adjustResize的高度變化響應(yīng)更及時(shí)。!-- NestedScrollView包裹表單布局的典型結(jié)構(gòu) -- androidx.core.widget.NestedScrollView android:layout_widthmatch_parent android:layout_heightmatch_parent android:fillViewporttrue LinearLayout android:layout_widthmatch_parent android:layout_heightwrap_content android:orientationvertical !-- 一堆輸入控件 -- EditText ... / Button ... / /LinearLayout /androidx.core.widget.NestedScrollViewfillViewport這個(gè)屬性要記住設(shè)成true否則當(dāng)布局內(nèi)容高度小于屏幕高度時(shí)NestedScrollView里的子布局只有wrap_content高度底部會(huì)露出一片空白或者背景色。3.2 實(shí)操中的坑焦點(diǎn)滾動(dòng)不完全用ScrollView方案時(shí)有一個(gè)很典型的坑鍵盤(pán)彈出后輸入框確實(shí)滾上來(lái)了但滾動(dòng)位置不對(duì)輸入框只露了一半另一半還是被鍵盤(pán)遮住。這個(gè)問(wèn)題的根因是焦點(diǎn)滾動(dòng)發(fā)生在窗口resize之前。你可以給輸入框設(shè)置android:scrollbarStyle或者在代碼里做一次延遲滾動(dòng)editText.setOnFocusChangeListener((v, hasFocus) - { if (hasFocus) { v.postDelayed(() - { Rect rect new Rect(); editText.getWindowVisibleDisplayFrame(rect); int[] location new int[2]; editText.getLocationInWindow(location); int bottom location[1] editText.getHeight(); int visibleBottom rect.bottom; if (bottom visibleBottom) { scrollView.smoothScrollBy(0, bottom - visibleBottom 20); } }, 200); } });本質(zhì)上就是等鍵盤(pán)完全彈出后再手動(dòng)計(jì)算輸入框底部和可視區(qū)域的差距做一次scrollBy覆蓋系統(tǒng)的滾動(dòng)。這里還有一個(gè)隱藏細(xì)節(jié)getLocationInWindow獲取的是相對(duì)窗口的坐標(biāo)不是相對(duì)屏幕的。如果Activity本身處于分屏或者懸浮窗狀態(tài)坐標(biāo)會(huì)有偏差但你用getWindowVisibleDisplayFrame去算可視區(qū)域就不會(huì)差太多。我的實(shí)際經(jīng)驗(yàn)是NestedScrollView方案對(duì)大多數(shù)內(nèi)容式頁(yè)面已經(jīng)夠用。但如果你用的是RecyclerView作為根布局還需要額外處理在RecyclerView外部包一層NestedScrollView并設(shè)置RecyclerView.setNestedScrollingEnabled(false)否則在鍵盤(pán)彈出時(shí)RecyclerView內(nèi)部滾動(dòng)會(huì)和外層NestedScrollView搶滾動(dòng)事件體驗(yàn)很割裂。4. 方法三底部輸入欄專(zhuān)項(xiàng)處理——聊天、評(píng)論場(chǎng)景的正確姿勢(shì)4.1 為什么底部固定輸入框用adjustPan會(huì)翻車(chē)如果你的頁(yè)面是聊天、評(píng)論區(qū)、直播彈幕那種底部固定輸入欄上面是一堆列表內(nèi)容這時(shí)候用adjustPan極其痛苦——鍵盤(pán)一彈整個(gè)頁(yè)面被平移頂部?jī)?nèi)容劃過(guò)屏幕底部輸入欄雖然可能被頂上來(lái)但列表和輸入欄的視覺(jué)關(guān)系完全錯(cuò)位。這種情況的標(biāo)準(zhǔn)解法是adjustResize 動(dòng)態(tài)監(jiān)聽(tīng)鍵盤(pán)高度 給底部容器設(shè)置paddingBottom。4.2 用OnGlobalLayoutListener監(jiān)聽(tīng)鍵盤(pán)高度我的做法是在onCreate里給根布局注冊(cè)一個(gè)ViewTreeObserver.OnGlobalLayoutListener每次布局變化時(shí)判斷鍵盤(pán)是否彈出并記錄鍵盤(pán)高度。private boolean isKeyboardVisible; private int keyboardHeight; private ViewTreeObserver.OnGlobalLayoutListener globalLayoutListener new ViewTreeObserver.OnGlobalLayoutListener() { Override public void onGlobalLayout() { Rect r new Rect(); rootView.getWindowVisibleDisplayFrame(r); int screenHeight rootView.getRootView().getHeight(); int heightDiff screenHeight - r.bottom; if (heightDiff dp2px(100)) { // 鍵盤(pán)彈出 if (!isKeyboardVisible) { isKeyboardVisible true; keyboardHeight heightDiff; applyKeyboardHeight(true); } } else { // 鍵盤(pán)收起 if (isKeyboardVisible) { isKeyboardVisible false; keyboardHeight 0; applyKeyboardHeight(false); } } } };100dp這個(gè)閾值要注意有些手機(jī)底部有手勢(shì)導(dǎo)航條靜止?fàn)顟B(tài)下的heightDiff也可能有幾十像素閾值太小了會(huì)誤判。這也是我在多個(gè)機(jī)型上踩完坑調(diào)試出來(lái)的經(jīng)驗(yàn)值。4.3 paddingBottom補(bǔ)償法的完整代碼拿到鍵盤(pán)高度后直接給底部輸入欄容器設(shè)置paddingBottom輸入欄就會(huì)“懸浮”在鍵盤(pán)上方。private void applyKeyboardHeight(boolean show) { ViewGroup.MarginLayoutParams params (ViewGroup.MarginLayoutParams) bottomBar.getLayoutParams(); if (show) { params.bottomMargin keyboardHeight; } else { params.bottomMargin 0; } bottomBar.setLayoutParams(params); }你可能會(huì)問(wèn)為什么不用layoutParams.height加到輸入欄原有高度上而要用paddingBottom因?yàn)楹芏噍斎霗谑怯斜尘吧闹苯痈母叨葧?huì)把背景拉得很長(zhǎng)看著不協(xié)調(diào)。paddingBottom改的是內(nèi)容區(qū)高度背景區(qū)域跟著整體變大但輸入按鈕、EditText這些子控件的排版不會(huì)變視覺(jué)上只是輸入欄整體被頂高了一截正好等于鍵盤(pán)高度觀感是最好的。另外如果你的輸入欄本身有背景圓角或者陰影加paddingBottom之后背景會(huì)覆蓋鍵盤(pán)頂部區(qū)域這其實(shí)是想要的視覺(jué)效果輸入欄和鍵盤(pán)連成一片更貼近iOS樣式。但如果你的鍵盤(pán)是深色模式背景色不匹配視覺(jué)上會(huì)形成一條明顯的分界色帶這種情況可以考慮給鍵盤(pán)頂部加一條和輸入欄背景同色的線(xiàn)。還有一個(gè)細(xì)節(jié)需要緩存keyboardHeight如果每次布局變化都重新計(jì)算并設(shè)置會(huì)造成界面抖動(dòng)視覺(jué)效果很差。5. 方法四沉浸式布局下的軟鍵盤(pán)問(wèn)題——fitsSystemWindows的坑與解法5.1 沉浸式布局為什么讓鍵盤(pán)問(wèn)題更嚴(yán)重現(xiàn)在的應(yīng)用基本都會(huì)做沉浸式就是讓內(nèi)容延伸到狀態(tài)欄和導(dǎo)航欄下方整體更美觀。但沉浸式布局和軟鍵盤(pán)簡(jiǎn)直是天敵組合。正常模式下系統(tǒng)給窗口的可用區(qū)域已經(jīng)扣除狀態(tài)欄和導(dǎo)航欄adjustResize壓縮時(shí)計(jì)算相對(duì)正確。一旦啟用沉浸式窗口本身就延伸到狀態(tài)欄后面adjustResize的計(jì)算起點(diǎn)變了再加上fitsSystemWindows在不同父容器上的行為不一致結(jié)果就是鍵盤(pán)彈出后輸入框被頂?shù)搅艘粋€(gè)預(yù)料之外的位置。我自己遇到過(guò)最典型的情況用CoordinatorLayout作為根布局設(shè)置了fitsSystemWindowstrue鍵盤(pán)彈起后界面上方多了一塊黑色區(qū)域下方輸入框照樣被蓋住排查了很久才發(fā)現(xiàn)是系統(tǒng)狀態(tài)欄和resize邏輯在打架。5.2 一個(gè)通用的鍵盤(pán)監(jiān)聽(tīng)工具類(lèi)遇到這種情況我建議拋開(kāi)系統(tǒng)resize邏輯直接用代碼做全局補(bǔ)償。你可以把監(jiān)聽(tīng)器掛到DecorView上因?yàn)镈ecorView是整個(gè)窗口的根節(jié)點(diǎn)它收到的布局變化是最準(zhǔn)確的。public class KeyBoardHeightHelper { private final View mRootView; private final OnKeyBoardVisibledListener mListener; private boolean mIsKeyBoardVisible; public KeyBoardHeightHelper(View rootView, OnKeyBoardVisibledListener listener) { this.mRootView rootView; this.mListener listener; mRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { Override public void onGlobalLayout() { checkKeyBoardState(); } }); } private void checkKeyBoardState() { Rect rect new Rect(); mRootView.getWindowVisibleDisplayFrame(rect); int visibleHeight rect.height(); // 假設(shè)鍵盤(pán)收起時(shí)可視高度接近根視圖高度 if (visibleHeight mRootView.getHeight() - dp2px(100)) { if (!mIsKeyBoardVisible) { mIsKeyBoardVisible true; int keyboardHeight mRootView.getHeight() - visibleHeight - getNavBarHeight(); mListener.onKeyBoardVisibled(keyboardHeight); } } else { if (mIsKeyBoardVisible) { mIsKeyBoardVisible false; mListener.onKeyBoardDismiss(); } } } }這套邏輯在沉浸式布局下依然穩(wěn)定因?yàn)樗灰蕾?lài)系統(tǒng)是否觸發(fā)resize而是直接監(jiān)聽(tīng)可視區(qū)域的高度變化。拿到高度后你可以動(dòng)態(tài)給底部菜單、發(fā)送按鈕區(qū)域設(shè)置bottomMargin或者給整個(gè)內(nèi)容區(qū)的paddingBottom加高。5.3 別忘了導(dǎo)航欄高度沉浸式布局里還有一個(gè)容易被忽視的點(diǎn)windowVisibleDisplayFrame的可視區(qū)域高度已經(jīng)避開(kāi)了導(dǎo)航欄。如果用戶(hù)在手機(jī)啟用了手勢(shì)導(dǎo)航底部還會(huì)有一塊手勢(shì)條區(qū)域。你的鍵盤(pán)高度如果直接用rootView.getHeight() - visibleHeight去算會(huì)把導(dǎo)航欄高度也包含進(jìn)去導(dǎo)致輸入欄被頂?shù)锰叩撞柯冻鲆粭l背景。最好在計(jì)算鍵盤(pán)高度時(shí)減掉導(dǎo)航欄高度。先判斷是否存在導(dǎo)航欄再獲取高度然后注冊(cè)一個(gè)OnApplyWindowInsetsListener去動(dòng)態(tài)獲取。這個(gè)思路說(shuō)起來(lái)簡(jiǎn)單但很多項(xiàng)目是在這上面翻過(guò)車(chē)的。6. 方法五應(yīng)急用的DecorView強(qiáng)制resize方案6.1 什么時(shí)候需要用這個(gè)方案有些頁(yè)面實(shí)在太頑固以上方法都試過(guò)之后還有問(wèn)題。比如頁(yè)面里混合了WebView、第三方SDK的彈窗、或者多個(gè)EditText在不同層級(jí)adjustResize完全失效鍵盤(pán)高度監(jiān)聽(tīng)又因?yàn)槟承㏒DK內(nèi)部也修改了窗口布局導(dǎo)致沖突。這時(shí)候我建議用終極方案直接監(jiān)聽(tīng)鍵盤(pán)彈出手動(dòng)修改根布局高度。6.2 這個(gè)方法的核心思路這個(gè)方法的核心不是改layoutParams而是自己模擬一次窗口resize。具體做法是監(jiān)聽(tīng)鍵盤(pán)高度然后把根布局高度強(qiáng)制設(shè)置成“原始高度 - 鍵盤(pán)高度”。// 先在onCreate時(shí)記錄原始高度 private int mRootHeight -1; private void applyRootHeight(boolean isShow, int keyboardHeight) { if (mRootHeight -1) { mRootHeight rootView.getHeight(); } ViewGroup.LayoutParams params rootView.getLayoutParams(); if (isShow) { params.height mRootHeight - keyboardHeight; } else { params.height ViewGroup.LayoutParams.MATCH_PARENT; } rootView.setLayoutParams(params); }注意rootView最好不要是DecorView本身而是你布局文件里的最外層容器。對(duì)DecorView動(dòng)手風(fēng)險(xiǎn)比較高而且很多系統(tǒng)彈窗的邏輯也會(huì)關(guān)聯(lián)到它。6.3 一個(gè)必須避開(kāi)的坑死循環(huán)強(qiáng)制設(shè)置高度是有副作用的你改了高度會(huì)再次觸發(fā)onGlobalLayout然后又進(jìn)入監(jiān)聽(tīng)回調(diào)再改高度形成死循環(huán)。解決思路是加一個(gè)防抖標(biāo)記private boolean isResizing; Override public void onGlobalLayout() { if (isResizing) return; Rect rect new Rect(); rootView.getWindowVisibleDisplayFrame(rect); int visibleHeight rect.height(); if (visibleHeight screenHeight - dp2px(100)) { if (!isKeyBoardShow) { isKeyBoardShow true; isResizing true; applyRootHeight(true, screenHeight - visibleHeight); rootView.post(() - isResizing false); } } else { if (isKeyBoardShow) { isKeyBoardShow false; isResizing true; applyRootHeight(false, 0); rootView.post(() - isResizing false); } } }用post延遲重置標(biāo)志位這樣既能在重置后接受新的狀態(tài)變化又不會(huì)在同一次布局循環(huán)里反復(fù)觸發(fā)高度修改。這個(gè)方案是最后手段有很明顯的局限性你在onCreate里記錄的mRootHeight如果在Activity重建、旋轉(zhuǎn)、多窗口切換時(shí)不在onCreate里重新獲取高度就是錯(cuò)的。所以這些場(chǎng)景下務(wù)必在onResume里重新賦值。7. 五種方法怎么選一個(gè)實(shí)戰(zhàn)向的對(duì)比與建議7.1 適用場(chǎng)景對(duì)比表格方法核心原理最佳使用場(chǎng)景風(fēng)險(xiǎn)點(diǎn)windowSoftInputMode系統(tǒng)級(jí)resize/pan簡(jiǎn)單頁(yè)面、系統(tǒng)樣式的表單頁(yè)碎片化環(huán)境下容易失效ScrollView包裹滾動(dòng)容器適應(yīng)高度長(zhǎng)表單、發(fā)布頁(yè)、設(shè)置頁(yè)滾動(dòng)關(guān)聯(lián)復(fù)雜時(shí)有滾動(dòng)沖突OnGlobalLayoutListener paddingBottom監(jiān)聽(tīng)鍵盤(pán)高度手動(dòng)補(bǔ)償聊天、評(píng)論、底部輸入欄鍵盤(pán)高度計(jì)算要排除導(dǎo)航欄fitsSystemWindows 手動(dòng)補(bǔ)償繞過(guò)系統(tǒng)resize直接處理沉浸式、全屏布局坑多歷史包袱重DecorView強(qiáng)制resize手動(dòng)模擬系統(tǒng)resize混合復(fù)雜布局的應(yīng)急方案容易死循環(huán)要加防抖7.2 我自己項(xiàng)目里的選擇習(xí)慣我做新項(xiàng)目的時(shí)候有個(gè)固定套路能滾動(dòng)的頁(yè)面優(yōu)先用ScrollView方案底部固定輸入欄用OnGlobalLayoutListener監(jiān)聽(tīng)方案沉浸式布局干脆兩個(gè)一起上——最外層監(jiān)聽(tīng)鍵盤(pán)高度 整個(gè)內(nèi)容區(qū)做padding補(bǔ)償。windowSoftInputMode這個(gè)配置我甚至很少改因?yàn)樗淮_定性太強(qiáng)。有一次我在一個(gè)頁(yè)面上把a(bǔ)djustResize改成adjustNothing鍵盤(pán)彈出后輸入框被擋住了但因?yàn)槲矣帽O(jiān)聽(tīng)器做了padding反而界面沒(méi)有任何變化鍵盤(pán)彈收都很自然那之后我越來(lái)越傾向于把布局主動(dòng)權(quán)掌握在自己手里。另外補(bǔ)充一個(gè)很多人不知道的點(diǎn)監(jiān)聽(tīng)鍵盤(pán)高度的時(shí)候如果你在onResume里注冊(cè)監(jiān)聽(tīng)、onPause里銷(xiāo)毀鍵盤(pán)彈出動(dòng)畫(huà)期間觸發(fā)的是中間態(tài)高度會(huì)有一次明顯跳動(dòng)。我后來(lái)都把監(jiān)聽(tīng)放在onCreate里一直掛著直到Activity銷(xiāo)毀才移除中間態(tài)高度雖然也有但因?yàn)殒I盤(pán)彈出很快用戶(hù)肉眼幾乎感知不到。7.3 最后排查鍵盤(pán)問(wèn)題的通用步驟如果你現(xiàn)在手上正好在排查這類(lèi)問(wèn)題我提供一個(gè)通用排查順序確認(rèn)Activity的windowSoftInputMode配置優(yōu)先adjustResize。檢查根布局結(jié)構(gòu)盡量使用可滾動(dòng)容器或通過(guò)padding方式補(bǔ)償。檢查是否有沉浸式標(biāo)記或第三方SDK修改了窗口屬性。用adb shell dumpsys window查看當(dāng)前窗口是否有softInputMode和resize相關(guān)的異常信息。真機(jī)多機(jī)型測(cè)試不要只在模擬器上驗(yàn)證國(guó)產(chǎn)ROM的差異超出你想象。我在實(shí)際開(kāi)發(fā)中還有一個(gè)習(xí)慣就是鍵盤(pán)相關(guān)的邏輯盡量收斂到一個(gè)工具類(lèi)里不要散落在各個(gè)Activity的onGlobalLayout回調(diào)中。工具類(lèi)會(huì)在內(nèi)部處理高度緩存、防抖、生命周期自動(dòng)注銷(xiāo)這種定式比每次臨時(shí)寫(xiě)一遍要穩(wěn)得多也更容易復(fù)用。最后想說(shuō)的是軟鍵盤(pán)問(wèn)題沒(méi)有一個(gè)代碼模板能覆蓋所有場(chǎng)景。真正有用的是理解了鍵盤(pán)彈出和窗口布局的關(guān)系再根據(jù)你頁(yè)面的具體結(jié)構(gòu)去選對(duì)應(yīng)的姿勢(shì)。用對(duì)一次就能在后續(xù)項(xiàng)目里少踩很多坑。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美国产操逼| 天天摸夜夜操视频| 91久久国产精品| 日韩在线欧美精品一区二区| 欧美黄页在线| 91精品丝袜久久久久久| 性爱av网站| 久久综合久色欧美综合狠狠| 欧美aaaaaaa| 亚洲最大黄网| 91内射| 免费强奸av| 91中文精品日韩欧美在线 | 欧美婷婷| 色综合 加勒比| 一级黄色视频网| 夜夜夜久久| 久久婷婷电影网| 中文字幕老熟妇黄色视频| 97这里有精品| 美女刺激久久国产欧美| 综合亚洲网| 九九热最新| 不卡六六在线91| 久久精品中文字幕观看| 91久久国产综合精品| 丝袜人妻av一区二区| 六六久久日韩不卡| 亚洲 欧美 日韩 国产一区二区| 婷婷五月综合激情| 一本色道久久综合亚洲二区三区| 97在线精品| 亚洲欧洲日韩中文字幕一区| 日逼97| 97综合在线| 操一对老熟妇爽上天视频| 婷婷丁香在线| 亚洲天天操| 天天色综合图片| 97干在线| 欧美后入视频| 99久久e免费热视| 精久久久| 99综合网| 午夜精品久久久| 日韩av熟女一区二区三区成人| 探花视频免费观看国产专区| 99色日| 欧美亚洲日本视频久久久| 国产熟女高潮一区二区三区| 亚洲 欧美都市激情| 亚洲人成网站7777| 九九人妻| 欧美综合97www| 国产成人无码啪| 人妻少妇久久| 欧美亚洲综合色| 岛国黄片网站| 亚洲涩图欧美| 色婷婷成人综合| 日韩激情小说一区二区| 97超碰影音| 成人情色一区二区| 91老熟女91老女人| 久久精彩视频9| 中文字幕第9页萱萱影音先锋| 中文字幕久久精品一区| 国产又色又爽又舒服的三级视频| 69XX一中文字幕人妻91| 九九热九九| 欧亚久久偷拍视频| 欧洲一级性爱视频在线观看| 人人操人人93| 91处女在线视频| 91操碰| 欧美78P| 欧美激情色婷婷花野真衣一区二区| 亚洲欧美日韩夜夜| 少妇厨房愉情理伦片bd在线观看| 丁香九月婷婷| 国产精品乱码久久久久久| 大香蕉操久久| 久久久免费一级黄片| 无码人妻一区二区三区免费九色| 天堂涩涩| 麻豆天美国美国产| 国产欧美日韩在线不卡第一页| 国产后入| 超碰在线免费一区二区三区| 蜜桃臀一区二区aV| 午夜毛片高清免费不卡| 热久久精品| 成人无码影片视频在线| 尹人免费观看视频在线| 3PAV乱伦视频| 大香蕉中文在线| 在线看免费无码AV天堂的| 亚洲日韩av专区无码| 亚洲 中文 欧美 日韩 在线| 亚洲精品天天影视综合网 | 激情一区二区三区在线观看| 国产一级黄色片在线观看 | 精品国产91内射久久| 78m成人视线| 久久久久网站-538在线视频-欧美永久乱码 | 芊芊操逼视频无码| 久久性爱视频免费看| 久久久久久99999国产精品| 91网亚洲| 97这里都是精品| 97干在线| 亚洲性综合9| 亚洲aV无码成人在线观看| 一级日本牲交大片好爽在线看| 亚洲色图欧美色图另类图片| 78精品| 国产美女91视频| 亚洲图片 91| 国产精品秘 福利姬在线观看| 大香蕉一区二区在线观看.| 97超碰日韩| 精品人妻一区二区三区视频在线| 91综合天天看| 天天操熟妇| 四虎免费视频| 日本黄页视频在线观看| 老熟女阿 国产91| 亚洲偷91色| 一区在线国产播放| 欧美 亚洲 偷拍自拍| 亚洲欧美综合区自拍另类| 国产Av超碰| 91在线精品一区二区三区| 精品九九九| 人妻一区二区三区四区视频| 激情五月天中文字幕色| 亚洲精品97| 色婷婷国产精品一区在线观看| 97碰碰色| 一区二区乱码福利| 欧美大香蕉同搞| 日本一区二区不卡精品| 啊啊啊操一区| 97色欧州| 麻豆区久久久久亚| 青青草好吊色| 欧美性爱第一页久久| 国产精品96| 蜜臀无码视频在线观看| 国产日产精品久久快鸭的功能介绍| 国产黄色剧情影片麻豆免费播放| 日逼逼免费看| 日韩激情啪啪| 情色AV电影| 日本中文字幕高跟| 91 综合 色| 怡红院亚洲怡春院av| 久9综合在线| 97这里有精品| WWW操逼| 天堂俺去俺来也www久久婷婷| 日本 情色 1区2区3区| 9997se| 亚洲欧美另类图片| 九九精品无码专区免费| 一级毛片久久久久久久女人18| 人妻日日干| 日韩激情中文字幕有码| 熟女啪啪视频| 影音先锋一区二区在线资源| 久久精品成人一区二区三区蜜臀| 亚洲av青草久久一区二区| 久久大| 午夜120视频在线观看| 无码在线亚洲| 亚欧精品久久久久久久久久久| 欧美丝袜激情| 亚洲AV在线资源| 男人的天堂免费| 亚洲在线网站| 99热婷婷| 中文字幕第23区| 亚州欧美另类| 欧美东京热精品A∨| 一区二区三区精品黑丝白丝酒店对鸡| 激情终合网| 亚洲中文字幕av| 操逼操2| 久久精品中文字幕无码l| 高清无码国产亚洲| 青青欧洲黑| 易易A毛视频| 搡老熟女免费视频| 亚洲一区二区麻豆影院| 夜夜操中文字幕| 久久一区二区三区四区五区| 人妻精品一区二区在线| 99免费视频| 中文字幕女同在线| 中文AV制服乱伦| 人人看人人摸人人色| 九九热免费在线国产视频伊人五月| 超碰一区二区| 久久男人精品| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲综合小视频小说在线观看| 国产AV线| 午夜电影在线观看无码专区| 97在线观视频免费观看| 91处女在线观看| 高清国产av无码| 欧美视频第二页| 综合网欧美| 在线性黄高清免费视频| 亚洲激情色片 | 亚洲在线综合| 亚洲欧洲精品视频发布| 日本免费一区二区不卡| 精品无码久久久久久国产浪潮| 大稥蕉免费视频这里只有精品| 97操综合| 婷婷亚洲五月***久久| 怡红院怡春院| #NAME?| 国产精品又黄又猛又粗| 91精品人妻电影| 日日黄色三级网站| 精品无码久久久久久久久果冻糖心| 五月婷婷AV| 日日日色色色色色| 搡老女人老妇女AAA一VU麻豆| 操人妻逼91| 国产内射爽爽大片| 九九九久千久久激情蜜桃在线看| 欧美 亚洲 在线| 激情五月天色播| 久艹免费| 91视频国品一二三区| 超碰9 7女人 | 国产精品嫩草影院免费| 欧洲精品网| 国产美女裸体秘 永久无遮挡| 五月天伊人| 99久久久无码国产精品性啊聊| 久久久婷| 精品十八在线观看| 中文字幕 国产 精品| 日本幼女18+| 爱我干综合| 密臀国产在线| 日本一区三级韩国| 综合伊人激情| 久久婷婷亚洲欧| 2019天天干天天操| 久操| 激情自拍 校园春色| 麻豆AV一区二区天美传媒| 欧美劲爆视频一区二区| 精品视频一区二区| 欧美男人一区| 国产第12页| 国产精品熟女九九九| 欧美日韩香蕉| 婷婷激情丁香| 欧美色图天堂网m| 亚洲成人性| 伊人午夜福利视频| 人妻少妇久久久| 可免费观看的av毛片中日美韩| 91色鬼| 亚洲自拍偷拍视频在线| 国产麻豆一区二三区| 欧美国产伊人久久久久| 鸥美中出| 日韩av熟女一区二区三区成人| 老子午夜伦不卡影院| 亚洲精品一区二区免费在线观看| 99色在线观看| 日产欧美电影一区二区三区| 青青久久久| 在线 制服丝袜中出 人妻| 成人av性爱电影在线观看| 国产精品丝袜久久亚洲不卡| 久久精彩视频| 成人性爱av.com| 久久熟女嫩草成人片免费 | 尤物av网站| 乱欲一区二区| 色九久| 99操| 久久人妻丝袜一区二区三| 黄色片A级一区二区三区| 超碰午夜| 亚洲人在线成线成人| 成年女人黄网站| 欧美色九九| 日韩欧美资源| 91九久| 黑人精品成人一区二区三区| 秋霞免费无码视频日韩A片 | 欧美大香蕉在线观看| 十八禁成人网站在线观看| 九九九九九精品视频| 久久鲁夜| 97精品国产97久久久久久免费| 成人亚欧免费视频| 国产9 9在线 | 亚洲| 欧美性爱超碰97| 97 超碰 人人做 人人爱| 久久 国产 无码| 97网色| 国产免费一区| 今日头条成人一区二区三区四虎精品| 大香蕉婷婷| 国产熟女免费观看久久| A 天堂| 嗯嗯啊啊啊好爽| 狠狠躁天天躁日日躁| 九一屌逼| 91久久国产综合久久| 天天视频黄网站| 狠狠色噜噜狠狠狠狠2018| 久久久久成人网| 啊啊啊啊啊舒服| 一区二区三区日韩欧美| 天天看综合网| 五月大香蕉| aaa一级黄片| 免费一级黄色录像影片| 久久久久久性爱免费视频| 久久视频,这里只有精品| 日本不卡三级网在线播放| 五月婷婷深深爱| 91强奸乱轮| 色色色欧美| 婷婷av在线中文字幕| 搡老女人老91妇女老熟女| 97视频一区| 97操97干| 欧美熟妇色| 91蜜臀人妻中文字幕在线| 九九九九免费视频| 97精品97| 国产女人9999| 老司机久久| 牛牛久久国产精品视频一二三| 97超碰色五月| 老熟女熟妇| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 九九热精品| 日韩AV片| 67914亚洲精品| 天天干天天狼在线视频| 国产福利精品最新在线| 4399成人黄A片| 久久女婷| 久久久爆乳翘臀一线天伦理视频| 国产欧美日韩女同性恋ww喷水精品| 亚洲高清无码免费观看视频| 超碰79人人乐| 热天堂一区二区| 久久久久骚| 国产久久一区二区午夜| 欧美久久久15P| 日本新免费二区三区| 操死我了嗯嗯嗯| 欧美色图在线视频少妇| 欧美97网| 很很操在线| 激情小说日韩无码| 国产92麻豆天美精品色欲5| 伊人女女资源在线观看| 人妻天天操天天爽视频免费| 久久av网| 国内一区二区三区| 色区97| 99re这里只有| 国产精品com| 天天躁日日躁xxxxx| 日日操丁香五月天| 欧美精品第3页| 95精品在线| 熟啊v色欧美热| 中文字幕综合人妻| 成人精品久久| 91在线视频国产网站| 国产对白刺激视频| 人妻av在线| 口爆欧美91| 97资源免费视频| 欧美色图欧美| 在线综合 亚洲 欧美中文字幕| www.国产高潮精品| 欧插网站| 人妻人久久精品中文字幕| 精品国产乱码久久久A| 岛国片在线视频网站| 欧美疯狂做爰xxxx| 国产专区路线| 欧美日韩欧美| 91操人| 校园春色之综合网| 久久久天美| 婷婷丁香激情| 美女刺激久久国产欧美| 熟女AV一区| 99精品综合久久久久五月天| 国产400孕妇孕交群| 免费少妇一区二区| 国产欧美精品日韩区二区麻豆天美| 久日91在线| 中文字幕在线免费观看| 成年无码动漫av片无尽在线 | 亚欧性爱在线无码| 亚洲色图 欧美热图 清纯唯美 另类自拍| 久久日本熟女精品一区| 欧美翘臀视频网站一区二区三区| 日本高清有码网址视频| 国产久久一区二区三区野外在线| 青青草色AV| 亚洲巨爆乳一区二区三区四季网| 另类小说五月天| 欧美精品久久| 中文AV制服乱伦| 伊人久久婷婷| 9精品久久| 精品少妇999| 牛黄色久午久| AV99热18这里只有精品| 精品久久久av无码免费| 丁香九月婷婷| 97操B| 99精品视频在线观看免费| 曰韩欧美国产传媒麻豆第一区| www.97在线| 亚洲丝袜二区在线| 亚欧成人中文字幕一区| 黄网站黄视频网站进入口| 亚洲欧美首页| 国产亲戚伦亲在线| 久久精品电影| 亚洲精品免费中文字幕| 丝袜制服字幕在线| 亚洲毛片基地专区| 国产精品久久久视频| 欧美色97| 色人久久| 蜜臀99久| 午夜免费视频1000| 国内一级精品| 精品二区三四区五电影 | 女上位精品在线| A片A5445444| 国产白领连续中出在线观看| 99久久99久久免费精品蜜臀| 久碰视频| 97超碰jingpin| 草草草视频| 狠狠五月天| 蜜臀99久久精品| 国产精品无码论坛| 成人精品水蜜桃久久久久久久| 成人小说视频在线精品欧美| 18禁久极品美女久久哦哟呀!| 激情小说日韩无码| 亚州色站 日韩电影| a片偷拍视频| 九九热超碰97亚洲最新香蕉 | 夜夜做夜夜爽精品视频| 国产最新小视频在线播放下载 | 日韩精品一区,二区 九九...老司机| 国产无码精品高清| 99re这里只有精品中心播放 | 九九Av| 91美女视频。| 亚洲综合另类| 精品九九| 99精品网站| 97在线观看| 99爱久久视频频| 黄色香蕉视频网站一区| 超碰中文字幕人妻草一区| 做爱A级亚欧| 久久成人东京热人妻| 色综合婷婷| 97亚洲在线| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久精品无码熟妇一区二区三区视频导航| 欧美激情另类一区二区| 91亚洲狠狠色| 有码人妻系列| 搡老人老9丨女老熟人| 人妻熟妇久草在线| 99热91| 超碰78| 大香蕉一人在线| 激情黄色片在线观看| 国产精品视频播放| 日韩三A大片在线观看| 欧亚 另类 久| 亚洲一区深夜| 天天操天天射天天日| 人妻喷水| 亚洲 欧美 色图| 91精品丝袜在线观看| 中文乱码字幕观看视频| 久久久久久91香蕉国产| 国产福利精品最新在线| 国产粉嫩蜜臀av一区二区三区| 精品无码一二三四区| 99精品在线播放| 91丨九色丨国产丨人妻在线 | 精品久久久久,69国产成人精| 人人操人人爽人人操人人| 91热色| 天美av在线观看| 国产高清26uuu| 九月伊人中文字幕| 国产女人9999| 麻豆区99999| 99碰碰| 亚洲国产91精品一区二区久久| 欧美九一精品久久久熟妇| 人妻天天爽夜夜爽爽| 亚洲一级特黄大片在线播放91| 天天夜夜rb| 99999精品视频| 狼人久草| 亚洲免费在线探花| 成人五月天丁香激情综合| 91精品久久久久久久久久| 五月丁香六月婷| 亞洲久久直播| 欧美色宗合| 国产自偷| 午夜综合在线| 女人妻一区| 99re久久| 精品一啪| 精品人妻1区| 成年人黄色| 男人的天堂三级| 91久青| 婷婷爱五月| 婷婷影院入口| 可能人人看人人摸| 97干色天堂| 久久黄色网址| 日韩久久三区| 久久麻豆一区二区| 女人高潮大叫一级毛片| 欧美综合中文| 97在线亚洲| 91男人天堂网| 女人的天堂大香蕉网| xxx亚洲午夜天堂| 91一区二区| 日韩人妻无码专区| 三级三级三级a级全黄三| 亚洲成人在线高清| 秋霞一集毛片观看| 久久老女人| 天天影视亚洲| 天天cao在线| 久久久78| 91中出在线| 国产九九九九九九| 做爱福利视频一区二区| 色综合20p| 天美传媒Av在线| 亚洲高清内射| 美女AV一区二区| 人人澡综合涩| 无码91| 国产天天看| 精品国产99| 精品国产一区二区久久| 99啪啪视频| 第二页中文字幕| 成人精品视频一区二区| 九九热超碰97亚洲最新香蕉| 97色欧州| 日日夜夜模| 91视频综合在线| 99日免费视频中文字幕| 亚州Av天美传媒| 国产视频97| 97久久久网站| 乱欲视频| 被窝影院午夜看片无码| 日韩精品碰碰| 超碰成人国产| 久久99久久99精品免视看婷婷| 99热婷婷| 淫色网综合| 96免费视频在线| 97欧美日韩中文| 高清国产av无码| 亚洲色五月| 天天弄欧美| 99精品人人爽| 四虎av在线| 亚洲综合999| PMv在线观看| 日韩人妻制服丝袜av| 久久综合激情| 超碰97在线 欧美 国产| 中文字幕少妇色| 超碰伊人在线| 国产精品天堂| 欧美天天综合网| 亚洲国产精品成人综合| 久久婷婷综合国际产色怕| 五月丁香综合网| 一区二区首页| 亚洲影视第一页| 综合欧美亚洲| 国产真实野战在线视频| 夜夜肏2021| 九九九九九九成人| 深喉吞精| 9色国产精品一区粉嫩| 超碰午夜| 网页导航五月天免费一二三区 | 久久伦理视频久久大香蕉视频| 人人澡人人澡人人| 试看日韩黄片| 动漫爆乳3D奶水一区在线观看| 色妹子A V| 激情婷婷丁香| 亚洲伊人成综合成人网| 亚洲 自拍偷拍 欧美| 欧美疯狂做爰xxxx| 自拍丝袜美腿人妻| 日韩图色| 3d成人精品一区二区| 天美精品av| 97在线青| 亚洲综合91| 秋霞一级视频在线观看免费| 欧美少妇大量自拍视频在线观看| 欧美丝袜美女电影一二三四区| 亚洲色图综合| 色综合色欲色综合色综合色综合| 绯色AV粉色AV蜜臀AV| 深爱伊人影院| 久操网无码在线| 久热69九色熟妇97| 亚洲成人AB| 操www| 日本久操视频| 日本大香蕉综合网红本杳社区| 国产99精品一区二区三区免费| 中亚av| 欧美 综合 亚洲| 国产一级内射高清视频| 婷婷综合五月天| 国产丸一视频| 亚洲欧美日韩免费电影| 嗯嗯啊啊啊好舒服| 加勒比中文av| 曰韩无码777| 91精品又粗又猛又爽| 精品久久久久久AV无码| 玖玖视频在线资源一区二区三区| 欧美在线l亚洲| 熟妇一区二区| 园内精品自拍视频在线播放| 欧美美女在线高潮999| 麻豆成人影音在线| 男人的天堂一区三区| 9久精品视频在线观看| 97精品在线视频| 丁香色色网| 日韩综合第八区国产精品| 自拍视频一区在线观看| 国产精品亚洲色婷婷久久久| 人妻天天爽夜夜爽爽| 91精品丝袜久久久久久| 九九黄色网| 亚洲九九视频| 成人 日本A片无码8888| 亚洲精品97中文字幕| 久久久久久97| 久久久9品一区二区三区| 色欧美亚洲| 婷婷天堂站| 玖玖无码超碰| 99日韩| 中文字幕99999| 婷婷四五区| 久久久久久性爱免费视频| 男人兔费天堂| 色姑娘综合网| 欧美久久婷婷| 天天躁日日躁xxxxx| 97一本大道亚洲一区| 约操熟妇| 亚洲国产丝袜在线观看| 日韩在线观看中文字幕视频| 亚洲第一页色网| 亚洲丝袜二区| 大象AV在线| 中文字幕少妇色| 人人操人人摸人人看人人插| 精品999日本| 美國A片| 欧美色图99| 五月丁香激情综合网| 视频不卡中文字幕| 神马久久久久久久久久久久| 十八禁av无码免费网站APP| 黄色十八禁| 2024人人操人人摸| 久久精品91| 久久久激情| 私人尤物在线精品不卡| 大鸡吧尹人在线| 国产精品美女久久久久AⅤ国产馆| av亚洲天堂资源网站| 无码天天操| 欧美午夜视频| 97天堂| 五月天婷婷在线看| 综合天天网| 自拍偷拍2025在线观看| 97免费视频在线| 9热9热综合网| 日韩中文字幕在线视频观看| 好爽免费视频| 人妻 欧美 中文| 国产情侣自拍在线播放| 91丝袜美女视频| 狠狠色一区二区中文字幕| 日本高清一区二区在线| 欧美亚洲激情| 色婷婷一区二区三区久久午夜| 亚洲Av无码成人精品国产| 人妻熟女一区二区三区视频| 91精品成人www| 久久久亚洲欧美综合| 亚洲天天更新| 欧美性生活免费网| 日产精品久久久一区二区| 日本天天人人狠狠在线日美女| 国产日逼视频| 国产又粗又长视频| 人妻熟女一区二区三区在线| 不卡免费av在线播放| 日韩熟女精一区二区三区不卡| 97精品第3页| 婷婷性爱| 欧美日韩香蕉| 屁股久久久久久| 加勒比伊人影院| 999久久久久久久精| 午夜福利视频在线一区| 自拍六区| 夜色97| 成 人 影视 一区 二区 三区 四区| 乱伦av麻豆| 国产 日韩,欧美 自拍| 欧美线天码中字| 91网18| 亚州精品一区二区三区香中文字幕在线| 啪啪视频亚洲第一 | 97久操| 国产视频小说| 首页亚洲国产高跟丝袜诱惑视频| 日本性爱少妇| 欧美Ⅴ性爱| 2020中文字幕在线| 久干网| 麻豆2区1区天美| 偷窥自拍亚洲天堂网爆| 九月丁香婷婷色| Av手机版天堂网| 26uuu久久| 亚洲久久久| 一区e区三| 97在线欧| 无码九九九九| 成人在线午夜视频一区| 中文在线久久字幕| 日韩AV中文字幕电影| 污啪啪啪视频| 九九精品热| aⅴ日韩成人电影av在线免费看av大全| 国产精品ⅴ无码大片在线看.| 亚洲激情视频| 亚洲 欧美综合| 亚洲影视高清第一页| 日韩精品9区| 国产av热热色| 日韩午夜国产| 日韩精品.久久精品.AV女优.天美传媒| 日韩av在线播放不卡| 国产精品欧美日韩久久| 亚洲制服aⅴ中文字幕| 国产家庭乱伦性爱视频| 国产精品分类在线观看| 视频一区二区免费在线| 婷婷超| 曰韩人妻中文字幕在线| 天天久久| 日日天天久久啊啊aaa| 玖玖视频在线资源一区二区三区| 99热思思| 天天爱天天韩国日本牛牛牛牛| 这里只有精品视频在线| 婷婷综合久久| 六月婷婷五月丁香| 九九在线视频| 四月丁香婷婷| 亚洲天堂色图| 大香蕉综合| 国产少妇与亚洲av| 日韩三级在线观看mp4| 久久久久久久久久黄色网| 欧美成人色| 欧美精品第四五页中文字幕在线观看| 亚洲少妇色图自慰直播| 国产精品久久久久久久免牛肉蒲团| 日韩美女高潮喷水视频| 9精品在线| 精品人妻视频一区二区在线播放 | 久久这里只精品免费福利| 伊人网高清| 国产精品高清2021在线| 久操com| 亚洲春色一区二区三区| 欧美肥臀在线| 亚州色图片在线色| 91色爽欧美| 亚洲日韩成人性爱视频| 日本色色的视频| 亚洲操逼无码| 激情小说亚洲| 国产精品熟女一区二区三区| 亚洲?V高清一区二区三区尤物| 亚洲欧美色图| 精品无码不卡视频| 第一高清av中文字幕| 亚洲 欧美 天天| 五月天伊人| 欧美偷偷网| 色臀AV| 婷婷干黄色| 国产 亚洲 一二三四| 成人性爱美曰韩| 五月婷婷六月天| 欧美成人精品A片免费一区99| 日本天堂网| 国产av色网| 国产精品久久天天干| 国产午夜无码片在线观看影视| 中文字幕永久在线| 九九英色视频| 精品无人区麻豆乱码1区2区图片| 欧美亚洲中文字幕| 天堂а√在线最新版在线| 天天天天天干夜夜夜夜夜操| 亚洲人成网站7777| 艹少妇网站| 色欧美天天| 日韩无码AB| 搡老女人老91二区| 天天操天天干一区二区 | 欧美人妻二区三区| 一区二区三区在线日韩影院观看| 精品亚洲| 亚洲超碰AV| 大香蕉一人在线| 欧美东京热青青草| 国模不卡| 久久发布国产伦子伦精品| 亚洲图片视频小说| 777AV电影| 久久国产精品一级二级三级| 精品中文一区二区| 天天综合网日韩| 亚洲制服欧美另类内射| 亚洲中文字幕有码视频一区二区三区| 久久精品99久久久久久| 亚欧高清| 天天爽天天| 亚洲色情在线影视| 亲子敌伦对白在线播放| 日韩性爱播放| 日韩一级二级三级免费看完整版国语版 | 欧美一级二级三级| 日韩欧美字幕亚洲一区二区| 蜜臀AV成人精品蜜臀AV久久| 91色亚洲| JIZZJIZZ国产精品喷水| 青青青艹在线视频| 一区二区三区美女超清| 婷婷六月色| 欧美成人色| 国产在线能看的你懂的| 青青草日韩无码| 亚洲 中文 欧美 日韩 在线| www.yeyecao| 国产馆极品诱惑| 怡红院成人视频| 另类天堂| 91男人综合| 日韩 欧美 另类 人妻| 中文字日本乱码| 性爱网站一区二区| 91超级碰| 久久久啊啊啊| 日韩中文字幕在线视频观看| 九九九九九用不成了| 综合影院永久入口国产| 色优久久| 国产欧美另类久久久精品课程| 午夜国产成人福利视频| 亚洲97p| 久久在线观看免费视频| 色婷久久| 夜夜欧美 | 人妻密肉在线观看| 思思热一热婷婷热一热| 另类天堂| chaopen97久久| 成人片在线播放| 校园春色美腿丝袜| 欧美做爰无码A片视频| 中国和日本人色哪个不下载能放| 亚洲成?V人片在线观看福利| 欧美偷偷网| 图片区小说区| 欧美最婬乱婬爆婬牲视频| 日韩性爱电影一区| 国产美女自拍视频| 五月丁香色婷婷| 啪啪自拍九九综合| 欧美性爱精品一区二区| 人妻熟妇一区二区三区| 丁香九月激情| 久久是精品| 岛国黄| 欧美亚洲韩国视频十五区| 日韩性爱网址| 久久线上视频免费看| 超碰91在线| 欧美性爱一区二区三区| 中文字幕一区二区三区人妻少妇在线 | 欧美三级一级| 日本爽爽爽爽爽爽免费视频| 亚洲精品蜜桃久久久久久久| 97人人操人人摸人人爱| 欧美日韩国产色五月综合在线| 色婷婷六月| 欧美色狠| 亚洲揄拍网| 婷婷视频在线免费观看| 九久久九九久视频| 蜜桃色色网站视频三区| 国产一区自拍欧美日韩| 亚洲熟女偷拍在线观看| **一级毛片国产| 超碰在线免费一区二区三区| 精品四五区| 久久二| 女人妻一区| 亚洲色 国产 欧美 日韩| 国产午夜精品一区二区三区牛牛| 99热亚洲天堂| 亚洲黄色网址视频| 九九热三级片| 亚洲综合影片| 91日本在线观看| 综合伊人网12色| 超碰性爱97| 无码日韩人妻av一| 国色综合天| 色月天AV导航| 亚洲一区日韩| 日本韩高清无砖码22o| 久久99精品九九久久久婷婷| 九九热在线视频| www.亚洲黄色| 夜夜操一区二区| 五月丁香六月| 亚洲黄色视频在线观看视频| 欧美白嫩在线放| 桃花色涩综合影院| 国产毛片毛片4p懂色| 啊啊啊啊好疼视频| 国产传媒美日韩av| 97人人模人人爽人人| 91综合站| 97热视频在线观看| 欧美|91色综合| PMv在线观看| 亚洲情色 自拍| 91撸色网 玖玖网 欧美| 亚洲乱码国产乱码精网站| 中文字幕天堂在线| 久久青娱乐| 久久人妻97久久久久久久| 亚洲超碰AV| 亚洲男人久久综合天堂| 伊人久大| 色九九九九| 激情自拍 校园春色| 两女互慰AV高潮喷水在线观看| 亚洲丝袜少妇在线| 久久视频少妇美女| 超碰97欧美在线| 欧美婷婷五月天| 久久久久久日韩| 在线中文字幕| 人人妻人人澡人人爽久久av| 日韩 女同 综合| 亚洲天堂自拍| www.狠狠干.coom | 亚洲在线网站| 国语精品av| 91视频女生| 歐美性天天| 欧美大香蕉卡久久| 天天干天天狼在线视频| 国产高清精品一区二区三区毛片 | 国产精品一区二区三区四区五区| 乱子伦一区二区三区国产精品| 精品人人| 射 色综合| 任你艹| 淫荡熟女乱伦网| 99re在线精品78| 日欧美色| 二对二中文字幕。| 精品国产网站| 久热这里| 超碰99在线观看| 中国一区二区亚洲人妻| 尤物av网站免费在线播放| 久久久久久久九九九九| 老熟乱一区二区三区四区| 老司机午夜精品福利视频一区二区 | 青操影院| 91网站在线播放| 一本大道综合伊人精品热热| 久久久久久久久久久97| 亚洲天堂另类小说男人| 国产欧美美女免费观看视频| 91超碰人人| www色婷婷| 99久久婷婷国产综合精品草原| 性爱综合网| 午夜男人一级A片7777| 韩国一级婬片A片AAAAA| 丁香六月婷婷久久综合| 九九色精品| 国产第25页在线观看| 日韩一性一交一A片俄罗斯| 又大又长又粗又爽又黄| 四虎影视欧美| 美女诱惑一区| 五月丁香激情四射| 91亚洲欧美| a片久久久久久久久久久久 | 9丨久久九九九| 久热最新在线杭州| 色妺妺AⅤ| 91天美| 91丝袜视频在线观看| 天天伊人| 九九九九热| 亚洲AV麻豆Aⅴ无码电影一| 岛国毛片在线观看免费| 国产中文大片资源中文字幕| 搡老女人911熟妇老熟女| 麻豆综合一区av| 亚洲 欧美 偷拍 唯美| 操逼网站视频漫画国产| 国产福利第一视频| 亚洲成人av电影在线| 日本123区操B视频| 先锋精品av色鲁| 四虎884a| 中文字幕乱偷人妻久久艾草网| 色网1| 精品九九九九九九| 国产精品久久久吖| 26uuu性| 久99视频| 花野真衣| AV99热18这里只有精品| 91精品在线播放| 躁躁躁日日躁2020| 日韩在线欧美精品一区二区| 国产精品久久久久久 百度| wwwss在线观看| 夜夜操av亚洲一区二区| 久久国语| 性欧美91| 再深点灬舒服灬太大了添视频| 小情侣高清国产在线视频| 中文字幕在线高清男人的天堂| 蜜臀精品1区2区| 啊啊啊不要嗯嗯在线观看| 国产三级片在线观看| 国产福利电影| 黄片aaaaa一区| 日韩三级视频一区二区三区| 欧美精品第四五页中文字幕在线观看| 日日橹狠狠爱欧美超碰| 婷婷五月天色网| 美女诱惑久久| 午夜激情成人在线观看| 国产精品青草综合久久| 色噜噜人妻av 中文字幕| 伊人久久蜜月| 操逼网站网站| 在线观看综合精品亚洲| 91九九| 999九九精品| 91成人无码| 欧美精品自慰系列寂寞少妇| 久久久亚洲精品电影免费看| av东京热男人的天堂| 天天射日日干| a级免费在线观看| 亚洲AV无码成人精品久久| 久久色一区| 黑人与人妻| 亚洲黑人在线| 玖玖婷婷五月天| 精品免费国产二区三区| 97网色| aaa一级黄片| 欧美暴力猛交| 人人操人人摸人人骑| 日韩成人大片在线观看| 国产又大又粗又长视频在线| 国产人妻一区二区三区欧美毛片| 国产精品夜夜夜| 中文字幕精品一区二| 九九综合久久| 久久久久深夜无码| 五月丁香六月综合缴清无码| 99∨VTV| 中文字幕欧美日本乱码一线二线| 欧美色性情| 欧美极品性爱天天射| 一区二区三区精品黑丝白丝酒店对鸡 | 色欧美天天| 中文字幕国产| 强奸乱伦AV网站| 67914亚洲精品| 欧美午夜视频| 亚洲 欧美 日韩 国产一区二区 | 澳门成人网站久国产日韩| 天天综合网~91| 超碰在线人妻中文字幕| 天天干天天干天天干|