① android中怎麼調試軟鍵盤遮擋的問題
/**
* 為輸入的軟體盤不遮擋輸入框,讓屏幕整體上移 配肢轎合
* android:windowSoftInputMode="adjustPan|stateHidden" 使滾蠢用大飢陪
*/
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
android:configChanges="screenSize|keyboardHidden"
android:windowSoftInputMode="adjustPan|stateHidden"
② android軟鍵盤擋住了下面的按鈕,有什麼辦法解決么
你在外層加一個ScrollView實現下滾動就可以了啊,擋住下面的按鈕也無所謂!
在AndroidManifest.xml文件中的啟慧野android:windowSoftInputMode屬性使用
<activity android:windowSoftInputMode="碧譽adjustResize" …… >
</activity>
如果我的回答沒幫助到您,悄喊請繼續追問。
③ android dialog中軟鍵盤遮擋輸入編輯框edittextt
自定義dialog布局中有編輯框,點擊彈出軟鍵盤後軟鍵盤遮擋編輯框
1,需要設置
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
2,將dilog的自定豎擾義布嫌纖答局外層用ScrollView包裹,軟鍵盤彈出後遮擋的編輯框就芹慧用戶可見了
④ 安卓7.0遇到軟鍵盤遮擋住PopupWindow
項目裡面原來是使用showAsDropDown方法彈虧李猛出,後面使用showAtLocation方法替代showAsDropDown()即擾塵可把讓軟鍵盤彈窗頂上銷橋去,而不會讓軟鍵盤遮住彈窗
⑤ 安卓手機底部輸入框被軟鍵盤遮擋的坑
最近在做用戶端客服對話系統,遇到一個很坑的事情--在oppo A53 5G安卓手機瀏覽器及webview上,底部position為fixed的輸入框被手機軟鍵盤給遮擋了,小米手機及iphone沒有問題。下圖分別為底部輸入框被遮擋及底部輸入框沒有被遮擋的情況:敬盯山
題亮中外話:
1、客服對話系統注意考慮到不能太短的則喊心跳時間,因為用戶可能切換到後台長時間選擇文件上傳。
⑥ Android Popwindow和軟鍵盤遮擋問題
PopupWindow含有輸入框時,點擊輸入框,軟鍵盤可能會擋住PopupWindow,而我們希望的是軟鍵盤能夠把PopupWindow給頂上去。
這里說明一下,主要是設置
popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
這兩句,而且碼掘尺順序不能遲高反,如果反過來散則就沒效果了。
⑦ Android WebView載入頁面的輸入框被軟鍵盤遮擋的問題
當實現沉浸式狀態欄時遇到軟體盤遮擋WebView頁面的輸入框的問題,這是實現方式有問題,應該檢查你的實現方式。
1)載入WebView的Activty不能設置為全屏模式,即Theme.NoTitleBar.Fullscreen,可以使用Theme.Holo.Light.NoActionBar
2)沉浸式狀態欄的實現方式,在Activity的根布局裡加兩個屬性:
android:clipToPadding="true" 設置你的繪制區域在padding裡面
android:fitsSystemWindows="true" 調整view的padding屬性為系統窗口 留出空間
在Activity的onCreate方法裡面設置標題欄為透明,即:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_ST ATUS);
3)Activity裡面不能設置android:windowSoftInputMode的屬性,使用默認的屬性即可
以上3步即可實現沉浸式狀態欄並且能保證你的WebView載入的HTML頁面的輸入框不被軟鍵盤遮擋。
頂
0
踩
0
上一篇 Android Studio在SVN上創建分支
下一篇 Android Converty問題解決方案
相關文章推薦
• android中webview載入html輸入框不能輸入內容問題記錄
• 如何解決Android軟鍵盤蓋住輸入框的問題
• Android 軟鍵盤蓋住輸入框的問題
• Android 軟鍵盤蓋住輸入框的問題
• Android 軟鍵盤蓋住輸入框的問題
• Android 軟鍵盤蓋住輸入框的問題
• Android 軟鍵盤蓋住輸入框的問題
• android popupwindow 中輸入框被軟鍵盤彈出擋住問題解決
• ios解決軟鍵盤遮擋輸入框問題
• Android軟鍵盤遮擋輸入框解決方法
參考知識庫
Android知識庫
34080 關注 | 2937 收錄
猜你在找
Android中的五大布局
零基礎學軟體之HTML語言
【Android APP開發】Android高級商業布局快速實現
html5的app開發
Android前沿技術—《軟體框架搭建》
Android移植基礎
html系統學習篇
零基礎學習HTML5—html+css基礎
Android開發之初窺門徑
Android之數據存儲
關閉
⑧ Android dialog 遮住輸入框的解決思路
在工作中經常會遇到彈出的dialog有輸入框的情況,屏幕大了還好,屏幕小了之後就特別容易出現輸入框被軟鍵盤遮住的情況,下面就是我在實際想中中遇到的
從上圖可以看出輸入框已經看不到了,遇到這種情況的第一個思路都是在dialog的style中添加
<item name="android:windowSoftInputMode">adjustPan</item>,我也試了下基本上沒用。然後換了個思路,既然軟鍵盤彈出來了,為什麼不能讓dialog向上移動同樣的距離呢。思路有了,下面就是把他實現了。
首先就是要計算軟鍵盤的高度,由於google並沒有給出具體的方法來計算軟鍵盤的高度,這時候我們就只能根據布局的高度變化來計算了。首先需要計算出屏幕的bottom坐標,然後監控布局的變動判斷變動後的bottom和初始的bottom的差值,一般肉眼觀察軟鍵盤的高度差不多是屏幕高度的1/3,所以就假設bottom往上移動了屏幕的1/3的距離就認為軟體盤彈出來了,當然也可以根據其他值來判斷,下面貼出具體方法:
/**
* activity中判斷軟鍵盤是否顯示
* @param activity
* */
fun isKeyboardShowing(activity: Activity): Boolean {
val screenHeight = activity.window!!.decorView.height.toDouble()
//獲取view的可見區域
val rect = Rect()
activity.window!!.decorView.getWindowVisibleDisplayFrame(rect)
return (2.0 /3.0) * screenHeight > rect.bottom.toDouble()
}
接下來我們來計算出軟體盤的高度,經過我在多個測試機上實驗發現初始時bottom就是屏幕的高度,下面是計算鍵盤高度的具體方法
/**
* activity中計算軟鍵盤的高度
* @param activity
* */
fun getKeyboardHeight(activity: Activity): Int {
val displayMetrics = DisplayMetrics()
activity.windowManager.defaultDisplay.getMetrics(displayMetrics)
val screenHeight = displayMetrics.heightPixels
val rect = Rect()
activity.window!!.decorView.getWindowVisibleDisplayFrame(rect)
return screenHeight - rect.bottom
}
有了高度之後一切就好辦了我們只需要在軟鍵盤彈出來的時候把dialog往上移動就行,在移動方式上我選擇了設置LayoutParams的方式,開始時想設置底部margin的,結果發現沒作用,dialog一點不移動,最後只好設置上邊的margin為負值
if (SoftUtils.isKeyboardShowing(context)) {
val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams
if (lp.topMargin ==0) {
lp.topMargin = -SoftUtils.getKeyboardHeight(context)
if (mRootView.height
lp.height =mRootOriginHeight
}
mRootView.layoutParams = lp
}
}else {
if (mRootOriginHeight ==0) {
mRootOriginHeight =mRootView.height
}
val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams
if (lp.topMargin <0) {
lp.topMargin =0
mRootView.layoutParams = lp
}
}
其中mRootView是dialog最外層的布局。在這裡面比較重要的一點監測方式,在哪裡監測軟鍵盤的彈出動作,在activity中可以監測onWindowFocusChanged方法,但是如果封裝了dialog的話,dialog中的onWindowFocusChanged並不會起作用,在這里我選擇了使用ViewTreeObserver和監聽,通過給mRootView的ViewTreeObserver添加addOnGlobalLayoutListener來實時判斷,下面是完整的方法
private fun setSpace() {
val treeObserver =mRootView.viewTreeObserver
treeObserver.addOnGlobalLayoutListener{
if (SoftUtils.isKeyboardShowing(context)) {
val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams
if (lp.topMargin ==0) {
lp.topMargin = -SoftUtils.getKeyboardHeight(context)
if (mRootView.height
lp.height =mRootOriginHeight
}
mRootView.layoutParams = lp
}
}else {
if (mRootOriginHeight ==0) {
mRootOriginHeight =mRootView.height
}
val lp =mRootView.layoutParams as ViewGroup.MarginLayoutParams
if (lp.topMargin <0) {
lp.topMargin =0
mRootView.layoutParams = lp
}
}
}
}
在這里當軟鍵盤彈出的時候重新設置了下dialog的高度,因為有時候軟鍵盤的彈出會使dialog的高度壓縮,所以彈出的時候重新設置下就好了。
這就是我的一個解決思路,當然完全按這個寫的話當輸入框較多時也可能出問題,最上層的輸入框跑屏幕之外去了,這種情況下我們只需要根據輸入框的位置動態的計算dialog需要往上移動的距離就行,不要一直設置為計算出來的軟鍵盤的高度。
下圖是解決之後的UI
⑨ Android手機數字鍵盤遮住輸入框問題解決
在H5頁面設計過程中,Android手機經常遇到數字鍵盤遮住輸入框的問題,該問題無法使用focus事件來進行解決,因為當把數字鍵盤折疊之後,再次點擊輸入框時無法觸發focus事件。
使用click事件來解決此類問題(click事件觸發如下函數):