Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题
在Android開發中,比較頭疼的問題就是EditText總是已啟動就獲得焦點并彈出輸入框,感覺很是不爽。而且,因為輸入框的彈出,導致屏幕布局獲得改變,有些空間被擠壓到一起,很是難看,所以,我就上網搜了一下如何解決這些問題,終于找到了問題所在,并且順利的解決了問題。
問題的原因是沒有在?AndroidManifest.xml??文件中進行設置。不過該要設置什么屬性呢?
需要設置的屬性是:android:windowSoftInputMode
| 值 | 描述 |
| "stateUnspecified" | 軟鍵盤的狀態(是否它是隱藏或可見)沒有被指定。系統將選擇一個合適的狀態或依賴于主題的設置。 這個是為了軟件盤行為默認的設置。 |
| "stateUnchanged" | 軟鍵盤被保持無論它上次是什么狀態,是否可見或隱藏,當主窗口出現在前面時。 |
| "stateHidden" | 當用戶選擇該Activity時,軟鍵盤被隱藏——也就是,當用戶確定導航到該Activity時,而不是返回到它由于離開另一個Activity。 |
| "stateAlwaysHidden" | 軟鍵盤總是被隱藏的,當該Activity主窗口獲取焦點時。 |
| "stateVisible" | 軟鍵盤是可見的,當那個是正常合適的時(當用戶導航到Activity主窗口時)。 |
| "stateAlwaysVisible" | 當用戶選擇這個Activity時,軟鍵盤是可見的——也就是,也就是,當用戶確定導航到該Activity時,而不是返回到它由于離開另一個Activity。 |
| "adjustUnspecified" | 它不被指定是否該Activity主窗口調整大小以便留出軟鍵盤的空間,或是否窗口上的內容得到屏幕上當前的焦點是可見的。系統將自動選擇這些模式中一種主要依賴于是否窗口的內容有任何布局視圖能夠滾動他們的內容。如果有這樣的一個視圖,這個窗口將調整大小,這樣的假設可以使滾動窗口的內容在一個較小的區域中可見的。這個是主窗口默認的行為設置。 |
| "adjustResize" | 該Activity主窗口總是被調整屏幕的大小以便留出軟鍵盤的空間 |
| "adjustPan" | 該Activity主窗口并不調整屏幕的大小以便留出軟鍵盤的空間。相反,當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為用戶可能關閉軟鍵盤以便獲得與被覆蓋內容的交互操作。 ? |
可以設置的值為表格中的內容,不過為了解決那兩個問題,我們需要的是其中的兩個值("stateHidden","adjustPan"),按照上面表格的介紹,這來那個屬性值可以使Activity啟動時,就算EditText獲得焦點時,軟鍵盤處于隱藏的狀態,并不會彈出,解決了其中的一個問題。而且,adjustPan 值可以調整軟鍵盤出現時的屏幕內容,簡單的說就是軟鍵盤覆蓋了屏幕內容,處于屏幕的上方,并不會改變布局,有著比較良好的用戶體驗。
為了解決EditText問題時,曾經讓EdittText中的屬性android:focusable="false"來進行設置,不過當然失敗了,它的后果是讓EditText不能獲得焦點,連輸入也不可以了。所以,這種解決方法是不可以的。
關于軟鍵盤彈出問題的深入研究,我把從網上找到的資料分享一下,因為我沒有進行這方面的研究,所以也沒有深入,有興趣的大家可以自己去了解一下。
鏈接:http://url.cn/fAmiqy
原文轉自:http://blog.csdn.net/ProgramChangesWorld/article/details/44875881?locationNum=12&fps=1
總結
以上是生活随笔為你收集整理的Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 95后考研落榜父母上岸疑似是营销旧文:当
- 下一篇: 《狂飙》反派戏九成是香港导演拍摄 代表作