国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成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
返回資訊列表
操操碰| 9999久久久| 日产欧美电影一区二区三区| 四虎影院成年人片| 无码欧美有限公司| 夜夜爽夜夜爽| 99热这里只有精品99| 男人把坤坤插入女人的下体| 伊人专区一区二区三区| 偷拍网站久久男女男| 九七超碰人人乐| 免费簧片在线观看| 中文字幕av丝袜| 蜜乳视频网站| 丝袜性亚洲| 久艹日日日| 大香蕉五月天| 欧美性爱一区二区三区| 在线观看十八禁| 亚洲色图A| 国产极品美女高潮无套在线观看| 国产乱码精品久久久久久| 网站A V在线| 97蜜桃综合| v91av| 99自拍视频在线| 在线播放欧洲免费av| 黄片免费久久久久久久| 人人噜夜夜操| 人妻中文字幕日韩电影| 四虎精品永久在线观看| 五月天婷婷久久| 99热婷婷一区二区三| 九九亚洲| 久久AV无码AV| 97中文字幕色| 蜜乳AV免费观看| 东北女人被操| 日逼视频日本| 久操| 99热色精品| 十八禁黄色| 亚洲天堂,男人| 97精品免费视频网站| 在线黄页看毛片| 91亚洲高清| 精品久久久久久亚洲| 成人性生活高清视频在线播放| 91麻豆天美国产欧美| 中文字幕欧美日韩三级| 97看操| 99热99在线播放激情| 五毛骚逼极品美女怕怕| 国产人妻精品久久久一区二区三区| 综合久久97| 综合干干干av久久久综合网| 精品久久久av无码免费| 大香蕉男人的天堂| 99久久久久| 美女91网站| 国产熟妇一区二区| 熟女视频久久| 成 人 A V免费视频在线观看| 美女AV一区二区| 国产自偷自拍一区| 99久久精品无码一区二区毛片免费| 日本东京热大香蕉a片| 欧美一级做a爰片免费视频| 91日韩| 成人综合视频久久| 人人操人人狠狠操| 亚洲一卡二卡在线免费| 使劲用力艹少妇视频一区二区 | 欧美日韩大香蕉| 无码人妻系列少妇| 色欧美天天| 欧美日韩日产免费网站看| 好看的久久不射无码影视影院| 亚洲成人久久一区二区| 91免费看一区二区三区| 后入日本1234| 青青欧美| 亚洲欧洲小说图片视频 | 东方亚洲在线操逼天堂| 九月AV| 每日更新AV| 精品人妻一区二区三区日产| 欧美操逼录像国产黄色国产| 青青草在线视频人人想人人上| 岛国视频一二三区| 一中国女人毛片水真多| 一区二区三区麻豆| 色香欲天天天天综合色| 97色妞| 婷婷在线播放| 亚洲一卡2卡3卡4卡乱码网站| 激情婷婷综合久久| 亚洲中文字幕熟女少妇一区二区| 尤物视频偷拍免费| 色精品极品| 亚洲欧美在线观看2021| 久久精品国产AV一区二区三区| 五月天精品| 青青草九九九九九| 伊人99热| 色情乱伦AV| 午夜视频黄| 一区二区三区四区理论片| 激情小说亚洲视频| 欧美日韩国产电影| 岛国AV一区二区电影| 亚洲欧美日韩精品久久久一区二区| 久久久久亚洲熟妇熟女| 亚欧无码线免费观看视频| 亚洲第一视频 欧美风情 日韩| 午夜欧美神马久久久久| julia中文字幕在线观看| 精品久一区免费| 91GD.COM| 志村玲子视频一区二区| 久干9操| 亚洲毛片一级带毛片基地| 18禁在线视频| 2024年最新色情网站在线观看| 综合亚州欧美| 婷婷国产精品一区二区| 91N综合网| 精彩久久中文| 欧美一二级| 亚洲色情在线影视| 91精品久久久久久77777| 热热热热日日漂亮永久永久国产日| 韩国轻伦国内自拍一区| 99色悠悠| 免费人人搞97| 中文字幕丝袜美腿| 狠狠2050在线观看| 九九九热精品| 日韩精彩视频| 综合亚州欧美| 久久欧美激情| 欧美亚洲| 天天干人人干天天日97| 人妻人人做人人澡人人爽欧美一区| 国产特级毛片AAAAAA高潮流水 | 精品人妻少妇| 小说区 图片区色 综合区| 精品久久久av无码免费| 色色毛片| 三级特黄60分钟播放| 又粗又长又爽在线观看| 亚洲av综合色区无码一| 亚洲蜜桃V妇女| 狠狠操综合| 人人操人人摸人 | 精品一二三区女同| 国产精品久久久久999| 97资源站久久| 天天日天天干少妇日| 青草成人免费视频一com| 久久激情婷婷| 久综合国内精品自在自线| ji熟女.com| 天堂中文资源在线bt| 五月丁香激情啪啪| 国模限制级电影| 国产精品久久久久久久久久久久久久久久久久 | 国产精品人妻熟女aⅴ| 熟女精品va中文字幕| 日韩性爱再线视频| 97精品国产97久久久久久户外免费| 中文字幕一区二区三区人妻少妇在线 | 女优免费一区二区永久| 日本男人插女人的逼黄色| 91少妇通奸网站| 综合五月天| 精品国模无码| 全球成人中文在线| 亚洲国成人情色好看电影| 男人天堂婷婷五月天校园春色| 97 超碰 人人做 人人爱| 97日韩欧美亚洲| 91内射| 玖玖玖玖精品国产剧情| 久久人妻视频网| 欧美久久久15P| 88在线一区二区三区| se..亚洲欧美| 盗摄 精品 另类 一区| 天天综合网91入口| 我要色综合网站| 久操操AV电影| 91人人爽人人爽| 欧美青青视频| 男女啊啊啊啊啊| 人人干人人操人人爱| 最近的最新的中文字幕视频| 操我啊啊啊啊啊| 亚洲色棕合| 欧美视频一| 高跟丝袜AV专区国产| www鬼畜国产男人的天堂| 中文字幕在线2| 九九九九免费| 另类天堂| 欧美久久毛片基地| 天天干嫩逼网| 国产自啪精品视频网站黑丝| 婷婷激情五月天小说网| 在线视频一区二区传媒| 中文字幕丰满人妻日本| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 超碰在线91| 日本Xx性爱| 成 人 影视 一区 二区 三区 四区| 啊啊啊轻点在线观看| 另类小说综合网| 美女露胸露尿口| 欧美性夜| www久| 鸥美精品一区二区久久婷婷| 国产亚洲性生活视频播放| 男人的天堂2010| 青青五月天| 人人摸人人摸人人干| 亚洲AO在线| 精品人妻一区二区三区四区不卡在| 探花一区在线| 99re这里只有| 国产精品亚洲一区二区三区四区| 久久蜜色情在线视频xxx免费观看| 人妻少妇久久中文字幕一区二区 麻豆| aaaa少妇高潮大片| 97综合久第一页| 影音先锋视频在线| 91 丝袜在线观看| 中字乱伦AV| 国产欧洲精品亚洲午夜拍精品| 国产精品探花色| 精品美女在线视频| av毛片aaaaa免费看| 97操97色| 一级aaaaa欧美中文字幕录像片| 绑缚麻绳人妻寝取完整版| 襙一襙| n1038 一二三区| 老熟女乱伦片| 97露脸精品丝袜| 九九精品99| 久久久久骚| 在线观看不卡一区二区三区| 色欲人妻一区二区在线| 国产精品宅男免费| 一二区在线观看视频| 91天堂色男人的天堂| 国产乱不卡| 囯产乱伦一区二区三女| 98超碰欧美| 婷婷五月天补不补| 农村女一级毛卡片| 色超碰综合| 家庭乱伦性爱av| 97鸡把在线视频| 99re视频在线观看这里只有精品| 2021国产成人精品久久| 久久久111| 亚热日本熟女| 99亚亚热| 强被迫伦姧在线观看无码网站| 91天堂视频| 粉嫩粉嫩一区性色AV片| 一本一道久久综合久久| 97人人射| 黄色片A级一区二区三区| 久久这里| 亚洲色图91欧美日韩| 国产熟女无套内射| 18岁禁 茉莉成人久久| 国产小黄片在线免费观看| 欧美色图99| 大香蕉手机在线视频| 久久一区二区高清免费| 欧美色图欧美| 超碰超碰欧美| 精品久久人妻成人网| 97综合在线| 91 国产丝袜在线播放-百度| 免费看毛片操穴| av三级电影在线播放| 高潮综合网| 丁香五月天啪啪| 91在线超高颜值国产| 国产精品一区在线播放| 少妇国产不卡| 探花精品视频| 中文字幕AV乱伦| 鸥美中出| 熟女精品一区二区在线观看| 婷婷五月影院| 色嗨嗨在线| 亚洲天堂精品日韩电影| av影院十区| 操人妻逼91| 国产一级特黄大片处女| 大象AV在线| 欧美91久久久久| AV一二区| 婷婷伊人| 日本激情免费大片| 国产精品国产亚洲区艳妇糸列| 亚州黄站| 亚精品无码毛片一区二区三区| 99自拍视频在线| 91精品女厕偷拍视频| 五月天精品| 美腿丝袜高跟网免费视频免费视频| 欧美婷婷五月天| 黑丝自慰喷水网站| 内射小黄片| 色悠久| 日本道人妻久久久在线不卡色视频| 影音综合网| 欧美熟妇视频| 色色色热| 大香蕉亚洲中文| 欧亚性爱视频免费看| 一级黄色性爱裸体视频| 大香蕉综合网| 日本理论在线| 性色av网站| 在线视频亚洲无码| 日韩精品影视| 久久一二三四五六七八九区区| 久久久久久久久久久久久9999| 无码国产精品午夜不卡(| 情趣丝袜无码操逼视频| 91在线视频免费播放| 日本韩国国产精品一区| 中文字幕一区二区三区字幕| 四虎精品永久在线播放| 97伦综合| JuliaAnnXXX888| 激情内射| henhen91| 伊人超碰97| 97色网| 啊啊啊啊啊啊好多水| 69一区二区三区| 欧美在线大香999| 91天天美女| 日1区2区3区2020| 在线啊啊啊| 噜噜噜噜久久久精品免费| 五十路熟女在线不卡观看一区二区| 国产AB视频| 夜夜青青无码影院| 久久久内射良家| com 首页 18岁 禁区 女优 免费 精选 同城 | 97草草| 久久久久婷婷精品av电影| 少妇熟女视频一二三区| 快播久久人人aV| 色在线69堂| 国产suv精品一区二六| 嗯嗯嗯啊啊在线观看| 亚洲无码日韩电影| 天天摸夜夜添无码小视频| 亚洲人妻中文高清| 久久久精品成人国产| 国产成人精品日本亚洲语言 | 9久综合网| 中文无码一二三区| 久久久噜噜噜久久久| 18一区二区三区| 中文字幕精品丝袜| 亚洲综合骚逼| 日日骚网站| 日本孕妇一区二区视频操逼免费看 | 欧美黄色图片| 欧美性生活内射| 日本丝袜美腿人妻九九| 亚洲性感丝袜诱惑在线观看| 欧美瑟综合| 男人天堂东京热| 91女神在线视频| 久久男人网| 久九9精品| 国产中午字一暮区| 插入逼91| 亚洲一区二区三区四区视频| 五月丁香啪啪| 日韩中文字幕av在线播放| 偷拍新久久| 清纯唯美亚洲综合| 免费簧片在线观看| 色噜噜综合在线| 九九夜精品九九在线| ...日韩成人一区二区三区字幕| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 白丝少妇一区二区| 96国产精品| 美女被啪到深处抽搐视频| 女同女同恋久久级三级| 美女尤物福利视频| 色偷综合| 国产精品一二三区18| 人妻在线视频| 久久黄黄| 60秒免费视频| 立川理惠被中出无码| 天天色天天干天天爱| 伊人久久艹| 天天做天天爱天天爽AV| 日本男人天堂| 国产精品干干干| oumeisetu综合| 日本天天干天天日一区| www.亚洲黄色| 射 色综合| 欧美韩日精品资源| 91精品微拍福利| 成功精品影院| 亚洲综合色图欧美| 女人喷水视频在线观看| 欧美亚男人的天堂| 青草成人免费视频一com| 近亲乱伦一区二区| 亚洲色性情三级| 天天操夜夜操| 狠狠操狠狠插| 欧美 日韩 婷婷 五月| 久久久久国产精品久久久| 国产激情av女片自拍| 亚洲91网站| 91久久久亚洲| av大香蕉网站| 亚洲色图欧美色图另类图片| www久久久| 人人爽夜夜玩视频| 777AV电影| 北京美女一区二区| 老司机午夜精品视频| 淫淫总合网| 97久久超碰亚洲| 国产AV无码AV| 亚洲欧美综合网站| 亚洲最大成人a毛毛片| 黑人与人妻| 日韩熟女操逼| 国产超碰在线一区| 日本中文熟女视频| 精品网站9999| 亚洲学生妹高清av| 区一在线观看| 国产中出内射一区二区| 天天欧美色| 欧美色视| 人妻天天操天天爽视频免费| 操国产高清| 水多多映视AV| 青青国产精品在线| 欧美色999| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 九九九九久久久| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 91久久九九精品国产综合| 久久精品亚洲东京热色播| 99热在线播放| 亚洲av热热色| 国产操伦| 91女优在线观看 | 蜜臀AV一区二区三区| 丁香九月激情啪| 青青草华人在线欧美在线| 在线无码视频| 999熟女精品| 日本天天操| 少妇高潮九九九九| 一区,二区,三区视频| 国产日韩欧美亚洲精品95| 免费超碰97久久| 欧美东京热精品A∨| 男人网站婷婷| 国产久久久久久久久一区二区 | 国产视频不卡在线观看| 在线天堂资源亚洲| 亚洲综合春色| 亚洲无码太久| 校园春色 亚洲| 日韩在线76| 亚洲一区日韩精品中文字幕 | 三男一女不戴套的A片| 天天α片| 中文自拍欧美影视| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 乱人乱色一区二区三区免费| 欧美图片偷拍| 久久亚洲AV成人精品无码| 亚洲情色 自拍| 欧美性区| 国产精品午夜高潮呻吟久久av| 欧美性性性| 91撸色网 玖玖网 欧美| 浓厚中出中文字幕在线| 激情内射| 怡红院怡春院| 性做久久久久久免费观看软件| 精品国产乱子伦一区二区三区,精品一 | 骚人妻少妇视频| 亚洲男人的天堂亚洲| 性久久久| 天天搞欧美| 激情六月天| 国产无码高清操逼视频| 精品国产乱子伦一区二区三区,精品一| 国产精品久久久久久夜夜夜| 日韩性爱网址| 中文字幕一区二区三区字幕| 久久三区四区| 91总综合网| 综合网色| 日韩亚洲国产视频| 国产欧美日韩臀 | 99久热| 蜜乳Av成人片网站| 亚洲欧美999| 久久一区二区加油站| 天堂资源欧美| 久久综合婷婷| 欧美 亚洲 偷拍自拍| 国产无吗在线播放| 97视频在线| 99热线麻豆| 影音先锋一区二区在线资源| 美女诱惑1区2区| 中文字幕一区二区三区高清| 日韩在线观看三级电影| 99最新日韩偷拍视频| 青青草伊人久久| 91丝袜美女国产| 亚洲成?V人片在线观看福利| 97在线视频观看网站| 性无码专区2020| 亚洲三级。日韩三级| 91在线/欧洲| 另类亚洲图色| 亚洲色堂免费视频| 色婷婷电影网| 屌逼麻豆| 婷婷五月天AV| 亚洲欧美国产日本一区二区三区| 一本一道波多野毛片中文在线| 97日亚洲欧美| 色逼综合| 美女上床网站| 男人天堂毛片| 老女人91| 天美麻豆黄色录像| 亚洲综合射| 色悠久久久av| 亚洲日韩东京热一区| 大香蕉综合在线| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 天堂8在线新版官网| 久久综合亚洲色1080p| 久久成人国产精品| CCYY草草影院地址入口| 欧美极品美女aaaaaa级黄片| 在线观看亚洲成人精品| 欧美传媒| 啪啪资源网| 岛国黄色短视频| 韩国成人精品久久久免费看 | 午夜无码精品免费看性色| 欧美精品69性爱| 久久精品国产AV一区二区三区| 亚州熟女乱伦| 嫩草在线视频| 最好看的中文字幕在线2018| 91在线精品| 亚洲色图亚洲无码强奸乱伦| 久久久五月天| 久久乐| 色婷婷成人综合| 欧美色图私拍91| 啊啊啊97视频| 欧美精品三区| 少妇三p| 久九色| 久久黄片国产一区二区| 人妻一区视频| 中日亚韩免费视频| 亚洲第一成人影院色播| 丁香六月综合激情| 99热色这里只有精品| 亚洲视频一二区| 色九九综合AV| 麻豆天美在线| 国产精品视频内谢女人| 欧美亚洲美少妇一区二区| 欧美熟妇亚洲版| 国产国产亚洲一二三久久| 夜夜欢天天干| 久久久久九九九| 国产不良强奸视频免费看| 樱花蜜乳av| 日韩乱插| 色婷婷激情| 2025亚洲男人天堂| 中文字幕欧美日本乱码一线二线 | 国产狂喷潮在线精品| 黄色免费网页无码| 日本 欧美 亚中文字幕| 台湾肥佬网一区二区三区| 综合av影片| 国产精品第一页国产大屁股视频免费区| 国产偷人伦激情在线观看| 强奸乱伦av电影| 美女黄色一级A视频| 欧亚第一综合网| 色婷婷一区二区三区久久午夜成人不| 婷婷10月天青娱乐| 中文字幕精品免费一区二区| 欧美黄片视频在线观看免费 | 亚洲双插| 欧美成熟性爱精品| 这里只有精品久久| 日韩伦理久 久久 清纯| 久久久一区二区| 日本精品五区| 岛国视频一二三区| 91大学精品激情戏| 91网站18+| 国产黄色剧情影片麻豆免费播放| 99自拍视频在线| 天天日天天舔东京热| 亚洲天堂一二| 日韩综合无码色欲vv| 最新AVzaixian| www.acm成人黄色毛片| 最新av网站在线观看| 丁香五月激情综合| 夜夜骑操视频| 国产在线能看的你懂的| 天天干少妇| 亚洲 无码 有码 中文字幕| 高清国产无码av| 成片免费观看视频大全| a人片中文字幕一区二区| 女人久久久| 丁香六月婷婷| 无码九九| 草莓精品视频| 超碰地址97| 小说区 图片区色 综合区| 综合色图区| 密臀成人视频久久久| 日本精品网站在线中文| 熟妇一区二区三区| 老女人综合网| 长长久久88视频| 人妻丰满熟妇av无码区蜜桃| 日韩不卡毛片Av免费高清| 中文字幕片| 美国日韩黄片| 澳门人妻久久| 亚洲欧美不卡线| 亚洲欧洲综合视频在线| 蜜区区视频79| 亚洲aV性爱| 日韩电影中文字幕| 国产欧美岛国精品一区| 97国产色图| 婷婷丁香五月天综合东京热| 日本精品性生活久久久| 香伊人在线| 亚洲丝袜天堂| 少妇一区二区三区精选| 午夜天堂精品久久| 中文字幕乱码人妻二区三区| 国产视频一区二区三区在线免费观看| 偷拍网站久久男女男| 2017天天操| 熟妇高潮一区二区免费视频| 天美传媒AV在线播放| 青青草原狼av| 国产精品精品系列在线观看| 射 色综合| 综合另类| 日本午夜福利视频| 国产综合色精品在线观看| 丁香五月社区| 日韩欧美性爱电影在线观看| 人妻天天夜夜爽一区二区| 久操97| 亚洲欧美日韩有码| 二男一女成人A片| 丁香7月婷婷| 久草视频分类在线| 少妇的嫩逼图片| 欧美视频在线第3页| 免费视频在线一区二区不卡| 1区2区3区中文字幕日韩| 国产人妖的免费的视频| 亚洲有码第一页| 玖玖玖玖精品国产剧情| 俞拍久久国应视频| 美女露胸露屁股| 97欧美精品| 韩国女主播青草在线| 黄色性爱网网| 黄色片G G G| 在线日韩视频| 久久亚洲国产成人| 国产精彩女在线观看视频| 国产情侣自拍在线播放| 天堂性色| 欧美 亚洲 另类 综合| 草莓精品视频| 人妻另类 专区 欧美 制服| 精品人妻视频一区二区三区蜜桃视频| 欧美日韩国产黄色片| 久久女女| 欧美美女在线高潮999| 先锋色眉乱伦资源| 午夜在线播放| 九九亚洲精品| 两性综合网| 91久久久久久久久18| B049AV在线播放| 国产宅男宅女在线观看| 男同专区一区二区三区在线| 欧美精品亚洲精品日韩传电影| 国色综合天| 久久综合18p| 人人操人人摸人人看人人干| 日本久久久久久久久久| 91操碰| 伊人一级免费黄片| 国产一区二区精品在线视频| 欧美亚性天堂| 午夜亚洲国产理论秋霞| 精品人妻久久久久一区二区三区| 亚洲s在线观看| 粉嫩不卡一区二区性爱 | 中文字幕伊人| 久操99| 女同性恋久久| 婷婷色色五月天福利| 九色 蝌蚪 熟女自| 国产欧美一区二区| 久精品无码av一区二免费国产在线观看 | 91中文字幕在线观看| 激情视频网址| 高潮的A片激情扒开一区| 日韩精品 欧美激情| 久久女人视频| 乱色视频中文字幕| 久久久久亚洲av综合波多野制衣| 72av视频| 中文熟女五十乱码在线| 欧美久久婷| 天天干夜夜一操| 国产一级内射无挡观看| 五十路三区在线| 99re6在线视频精品免费完整版安卓版| 91九九九馒头| 欧美色色色| 久久国内| 性久久| 四虎国产精品永久在线囯在线 | αⅴ天堂| 99av| 蜜臀网址在线| 欧美中字不卡| 嗯嗯啊好大| 久久伊人在线五区| caorenqi shipin| 国产超碰| 国人欧美精品一区二区| 成人av影院在线观看| 又大又大又大又粗爽高潮观看| 99热这里只有精品1| 久久久久国产| 久久综合久色欧美综合狠狠 | 清纯唯美第一页| 亚洲清纯综合| 骚货 中文字幕 av| 色综合加勒比四四季| 性欧美另类高清| 99热免费| 天天插天天干| 免费中文在线| 91快色色色色色| 久久直播国产| 欧美老妇曰批的视频| 涩综合导航| 日韩免费av片高清无码| 最新制服中文第一页| 欧美精品一二三| 噜噜噜噜久久久精品免费| 精品少妇一区二区| 小电影欧美91| 经典丝袜一区| 亚洲AV在线资源| 精品久久大胆人体| 日韩精品电影| 青青伊人加勒比海| 欧美色综合图片| 久久久久921| 久久噜| 少妇久久久免费| 中文字幕日韩情色| 神马久久免费电影观看| 97亚洲自在精品在线观看| 极品出轨视频网站| 97国产|免费| 亚洲资源站| 精品一区二区三区国产| 91P0RNY大屁股人妻| 五码视频在线观看| 国产av波波国产精品| 91午夜无码| 黑人嘿嘿嘿超爽免费视频| 人人射人人操人人摸| 亚洲最大无码中文字幕网站| 亚洲中文国际强奸字幕| 久久肏大逼| 亚洲成av人片色午夜乱码| 蜜桃成人1区2区3区| 观看免费区二区三区二| 欧美性爱一区| 欧美九一精品久久久熟妇| 中文字幕第二页| 成人开心网在线视频 | 丝袜美腿操av| 久久一二三四| 人人操人人操人人人操| 久综合网| 一区黄二区黄| 男人的天堂2000| 999色欧美中文字幕| 国产精品剧情| 91久久青青草原精品| 黄色操人| 精品性爱一二三区| 亚洲国产欧美日韩人妻日中文| 91久久午夜无码鲁丝片久久人妻| 精国久久一区二区三区98| 91亚洲黄色网| 成人小说另类在线| 日本一区视频在线观看| 黄色av一区二区在线| 亚洲综合网电影91| 九九自拍伦理| 欧美精品庄| 中文字幕一区二区免费在线| 亚洲福利中文字幕在线| 欧美日日夜夜| 久久中文字幕女同性恋一区| 日本综合色图| 亚洲精美粉嫩嫩泬在线观看| 台湾佬激情综合| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 78m啪啪啪| 久久久精品91八戒| 青草av在线| 麻豆黄四叶草网站| 国产嫩草精品A88AV| 午夜视频黄| 乱色视频中文字幕| 久久久九97| 色踪合AV| 18禁看网站一区| 激情看片网站| 91在线丝袜视频| 天堂综合网| 欧洲亚洲人人爽爽视频| 欧美中文字幕精品人妻| 日韩乱中文| 免費人妻夜夜爽天天爽爽一区| 久久久久久裸体| 亚洲欧美日韩免费观看| 综合久久六月久久婷婷| 黄色成品网站| 三四中文字幕| 91强热人妻| 爱欲AV| 亚洲丝袜少妇在线| 尤物一级在线免费观看| 打av高清| 亚洲丝袜诱惑| 啊视频在线| 91精品免费| 999亚洲国产视频| 97一区二区蜜臀| 诱惑网综合| 99热99在线| 久久久免费懂色| 搡老熟女免费视频| 亚洲天堂区| 久久婷婷一区| 综合操逼| 9精品久久| 污污汅18禁网站在线永久免费观看| 久久久啊啊| 78操B| 亚洲日韩美女中文字幕乱| 一区二区三区蜜桃成人撸久久东京热| 99热线麻豆 | 老外又粗又长一晚做五次| 欧美黄页在线| 久热热| 中文字幕永久在线| 天天操福利视频综合网站| 老司机老司机午夜影院| 欧美色997| 激情黄色片在线观看| 91人妻超碰| 91美女视频在线观看| 五月丁香综合| 美女91AV| 久热这里| 激情欧美97| 乱人伦 国语对白:视频直接看| 亚洲中文字幕久久无码精品| 在线观看精品国产免费| 欧美一区二区成人一卡| 欧美黄色片在线播放| 久久久久久久久久久久久9999| 97视频在线| http://qxhbdz.com| 日韩亚洲欧美中文字幕| 精品久久在线区一区| 97色欧洲| 久久婷婷精品| 鸥美中出| 国产蜜臀精品一区免费尤物| 黄色大片视频在线免费看| 久久老子无码午夜伦不卡| 91中出在线| 色婷婷综合网| 91bbb| 歐美一級亂黃99在綫精品| 亚洲影视综合| 二级久久网| 亚洲精品天堂久久A∨51成人漫| 色综合99999| 美女尤物人人操| 爱爱久久| 五月天成人综合| 亚洲色图亚洲| 亚洲综合影片| 丝袜剧情| 精品999一区二区| caopeng97| 秋霞一级A片黄色视频| 久草精品视频| 久久人人爽人人爽人人片Ⅴ| 亚洲福利影院一区久久| 黄总AV色图| 国产三级多多影院2022国产AA一级毛片无码 | 欧美美女视频| 亚洲综合另类欧美久久久| 女同女同恋久久级三级| 国产女主播视频在线观看| 97九色人妻| 人人操人人摸人人看人人插| 亚洲日韩乱码中文无码蜜桃臀网站| 九月激情婷婷| 91中文字幕在线观看| 99色热国产视频精品| 亚洲九九视频| 中文字幕视频2区| 一级aaaaa欧美中文字幕录像片| 99热这里只有精品1| 久超碰在| 国产操伦| 欧美九九九| 好看的91视频| 69少妇一区二区| 2017天天操天天日| 欧美一区二区在线资源| 亚洲av淫乱| 麻豆久久一区二区三区| 久久国产999| 大鸡巴久久久| 青青免费在线视频一区| 97超碰影音| 亚洲情色一区三区| 手机看片1025| 亚洲人妻中文在线视频| 懂色av中文字幕| 国产视频一区二区三区久久亚洲天堂| 美中日韩无码| 家庭乱伦麻豆| 精品一区二区2| 中文乱码99| 你想操日本小逼吗| 综合夜夜| 夜夜国自区| 久久久久久久78| 人妻AV在线| 在线观看黄色电话| 无码久久亚洲高清,| 97国产精选| 久久精9| 嗯啊啊啊轻点视频 | 人妻铁牛TV| 色九九综合AV| 国产伦精品免编号公布| 探花激情视频| 爽极品影院| 久久久新亚洲AV| 尤物视频新赏网鲜网色诱网| 久久一二三四不卡| 97精品国产97久久久久久| 亚洲最大AV网| 久久久精品无码亚免费| 96精品久久久久久久久久| 男人的天堂kva| 亚洲男人天堂2013| 裸体美女免费看网站青草| 午夜免费福利视频一区| 26uuu性物| 人妻色偷色噜| 南澳成人一级片在线播放| 免费97视频| 性色av一区二区| 大香蕉十区| 欧美一级A片在线看视频性色| 一起草三级AV电影在线观看 | 超碰到97情色| 久久99精品国产| 干B| 超碰人妻久久人妻中文97| 国产少妇与亚洲av| 亚洲欧美精品一区天堂久久 | 亚洲乱熟女一区二区| 伊人午夜福利视频| 欧美亚洲国产日本在线,久久精品国产| 婷婷伊人一区| 野狼激情网| 精品精品精品| 激情六月天| 激情五月激情综合网| 丁香六月综合激情| 韩日精品四区| 一区二区偷拍拍视频| 激情网五月天| 97天堂| 婷婷五月丁香五月| 99综合网| 女人被添高潮免费视频| 午夜欧美女人操逼| 尤物网址| 韩日性爱av| 国产www色在线观看| 啪啪免费| 精品人妻av在线播放| 性色生活片久久毛片婬片免费放女人一级毛片| 色欲Av人妻精品一区二| 亚洲最新Av| 丰满岳乱妇一区二区三区| 伊人久久综合影院| 中文字幕精品日韩中文字幕| 高清成年美女黄网站免费大全 | 少妇高潮对白在线观看| 凹凸视频在线观看伊人| 国产乱人伦AVA麻豆软件.| 噜噜吧,噜噜色,噜噜| 播播亚洲小说亚洲| 国产小u女在线观看| 九色婷婷| 夜夜嗨一区二区| 999日韩中文精品观看视频。| 玖玖97综合 | 亚欧美色| 美女被啪到深处抽搐视频| 在线天堂资源亚洲| 熟妇视频一区二区三区在线| 日本一道在线播放高清| 99亚洲精品| 欧美一二三级精品在线| 囯产操逼片| 狠狠干狠狠色| 手机av天堂久久久久| 久久 亚洲 日韩 人妻| 亚洲色图8| 亚洲情色综合| 特级特黄一级毛片免费| 富女玩鸭子一级毛片| 国产高清无码一区三区二区| 国产精品无码论坛| 天天日少妇逼AV| 超碰在线97国产| 久久精品国产97欧美精品亚洲| 中文字幕第2页| 秋霞免费无码视频日韩A片| 亚洲一级特黄大片在线播放91| 亚洲国产欧美中文永久| 91熟女熟妇视频网站| 久草资源欧美在线视频| 久久久91福利姬| 99热在线播放| 亚洲图片日本AⅤ欧美在线| 99无码视频| 另类亚洲图色| 哑洲在线| 亚洲色宗合| av爱爱爱| 亚洲AV无码成人精品久久| 天天看综合网| 男人的亚洲天堂| 色综合91好| 日韩亚洲精品一区二区| 日韩婷婷| 精品小视频在线| 久久久久久十| 偷拍精品一区二区三区| 亚洲免费人妻在| 久久人人妻| 天天操天天7| 中文字幕一区二区三区四区在线视频| ..日韩av毛片精品久久久| 天天摸,夜夜摸| 色天使大香蕉| 一本色道人妻久久| 秋霞成人一级在线观看| 五月激情小说| 午夜福利在线合集| 人妻天天爽天天爽三区| A 天堂在线观看视频| 久久久久久亚洲精品不卡人乳| 91精产一区二区三区| 亚洲欧美日韩中文播放| 精品一区二区三区蜜桃臀赵总| 亚洲天堂男| 综合免费无码中文| 97精品国产97久久久久久免费| 2019亚洲男人天堂| 精品九九国产无码| 91N欧美| 超碰在线1234区| 国产欧美另类久久久精品课程| 国产野战露脸在线播放| 青青11操操操操操操操操| 综合大香蕉美。| {男男暴菊gay无套网站| 亚洲五月丁香花狠狠干一区二区三区 | 97欧美久久久久久久| 91 欧美| 国产精品原创巨作?v网站| 99激情| 嗯嗯嗯啊啊在线观看| 国产狂喷潮在线精品| 婷婷色一区| 亚洲色图A| 岛国片在线观看视频亚洲| 欧洲与亚洲欧美精品中文字幕|