Android 軟鍵盤蓋住輸入框的問題
當在Android的layout設計裡面如果輸入框過多,則在輸入彈出軟鍵盤的時候,下面的輸入框會有一部分被軟體盤擋住,從而不能獲取焦點輸入。
解決辦法:
方法一:在你的activity中的oncreate中setContentView之前寫上這個程式碼getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二:在專案的AndroidManifest.xml檔案中介面對應的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",這樣會讓螢幕整體上移。如果加上的是
android:windowSoftInputMode="adjustPan"這樣鍵盤就會覆蓋螢幕。
方法三:把頂級的layout替換成ScrollView,或者說在頂級的Layout上面再加一層ScrollView的封裝。這樣就會把軟鍵盤和輸入框一起滾動了,軟鍵盤會一直處於底部。
注:方法一和二應該是同一種方法,不過一個是在程式碼裡實現一個是在xml檔案裡實現。可能會應為1.5和之前的版本不支援該方法。但是方法三是肯定沒有問題的。
文主要介紹Android中如何解決輸入法鍵盤和activity頁面遮擋的問題。
總結:
不希望遮擋設定activity屬性android:windowSoftInputMode="adjustPan"
希望動態調整高度android:windowSoftInputMode="adjustResize"
問題:
我原來的問題是,對於騰訊微博的OAuth驗證webView,彈出軟鍵盤後,輸入框上移就看不到輸入框了,後發現Webview放到了ScrollView中,將ScrollView改為LinearLayout問題解決了,不會在彈出軟鍵盤後大幅滾動。不過下面還是詳細介紹下軟鍵盤和activity頁面遮擋的問題。
詳細:
通常情況下如果我們在一個輸入框輸入內容,輸入法鍵盤彈出時,activity自動設定高度,相當於在activity向上滾動了新增了輸入法鍵盤的高度。但有時可能淹沒當前的輸入框,如果希望輸入法鍵盤彈出時不自動向上擠壓activity,在activty中設定屬性android:windowSoftInputMode="adjustPan"即可,如下:
- <activity android:name="testActivity"
- android:windowSoftInputMode="adjustPan">
設定屬性為android:windowSoftInputMode="adjustResize"即可自動調整高度。
屬性stateVisible表示預設顯示輸入法鍵盤,其他屬性見:android:windowSoftInputMode
adjustPan同樣存在問題,即可能需要關閉軟鍵盤,定位被擋住的輸入框,我希望的是介於adjustPan和adjustResize之間的解決方案,即軟鍵盤會對activity有一定擠壓,但是焦點所在輸入框始終會顯示在螢幕上,有會的朋友歡迎留言分享,個人覺得可能的解決方案是new一個LinearLayout,重寫其中的
- protected void onSizeChanged(int w, int h, int oldw, int oldh)
方法,使得h引數動態變化達到效果,但較耗時,暫不想嘗試了。
相關文章
- Android軟鍵盤彈出,覆蓋h5頁面輸入框問題AndroidH5
- 輸入框軟鍵盤遮擋問題解決方案
- iOS 防止輸入時鍵盤覆蓋掉輸入框iOS
- 隱藏的輸入框調起軟鍵盤問題--ios/安卓iOS安卓
- Android手機軟鍵盤遮蓋輸入框之重新佈局詳解Android
- 修復安卓鍵盤彈起擋住輸入框bug安卓
- iOS解決鍵盤彈出遮擋輸入框問題iOS
- 點選底部input輸入框,彈出的軟鍵盤擋住input(蘋果手機使用第三蘋果
- flutter - 使用 SingleChildScrollView() 解決鍵盤遮擋輸入框的問題FlutterView
- react在安卓下輸入框被手機鍵盤遮擋問題React安卓
- 安卓和ios鍵盤擋住輸入內容安卓iOS
- Android 軟鍵盤相關問題Android
- 利用flex佈局解決ios輸入框被鍵盤遮擋問題FlexiOS
- iOS軟鍵盤遮擋UITableView內文字框問題iOSUIView
- iOS 文字輸入框隨鍵盤上移iOS
- android鍵盤擋住介面Android
- input輸入框的游標定位的問題
- Android高仿微信表情輸入與鍵盤輸入詳解Android
- 一句話設定當前控制器的view跟隨鍵盤起伏,媽媽再也不用擔心鍵盤擋住輸入框了View
- 輸入框只能輸入負數,整數,2位小數(鍵盤彈起事件)事件
- Android輸入鍵盤隱藏解決方案Android
- React Native踩坑指南:ios鍵盤遮擋輸入框React NativeiOS
- iOS -UITextField/UITextView之鍵盤遮擋輸入框解決方法iOSUITextView
- 同文輸入法更換鍵盤主題
- JAVA 接收鍵盤輸入Java
- android:edittext 輸入問題Android
- 短視訊平臺開發,點選輸入框時自動彈出軟鍵盤
- h5 ios輸入框與鍵盤 相容性優化H5iOS優化
- Flutter仿微信,支付寶密碼輸入框+自定義鍵盤Flutter密碼
- iOS點選輸入框時自動移動到鍵盤之上iOS
- 專案總結二:解決鍵盤覆蓋tableview的問題View
- 實現android按下Enter鍵便隱藏輸入鍵盤Android
- Android 掃碼槍輸入時遮蔽軟鍵盤和頂部狀態列Android
- Android 9.0 新增預置第三方輸入法/設定預設輸入法(軟鍵盤)Android
- Android軟鍵盤模式Android模式
- 解決VNC有些鍵不能輸入的問題VNC
- 輸入法擋住輸入框和點選空白處把手機的輸入法影藏(焦點處理)
- android 軟鍵盤 輸入法 彈出引起的各種不適終極解決方案Android