Android WebView 輸入框鍵盤不彈出
問題
在Android中使用內嵌的WebView加載HTML網頁時,如果html頁面中存在輸入框。那么在有些手機設備中,當輸入框獲取焦點時,系統輸入法鍵盤無法正確彈出,從而無法完成正常的輸入要求
在做APP時,自己也遇到了這個問題,以下是自己解決的方法,有可能不適合大家所遇到的情況,但值得借鑒~
WebView設置問題
有些時候我們設計的html頁面并不能夠很好的適應WebView,尤其我們的html頁面是為PC瀏覽器設計的時候,當使用WebView來加載時,界面很可能會發生錯亂,當input輸入框被其他元素(例如:div)覆蓋,即使input能夠顯示和選中,但輸入法依然不會彈出。在這種情況下我們能做到的只有
1、WebView.getSettings().setUseWideViewPort(true),使WebView能自適應手機屏幕大小,自由縮放,使得WebView和PC瀏覽器更相似,避免界面布局錯亂,減少問題出現的概率2、為html提供移動版本
代碼失誤
有些時候我們需要自定義WebView來滿足特定的需求,比如我們想為WebView添加一個加載進度條,來統一WebView進度條的顯示,那么就有可能出現如下的代碼
public class ProgressBarWebView extends WebView{ public ProgressBarWebView(Context context) { this(context, null); } public ProgressBarWebView(Context context, AttributeSet attrs){ this(context, attrs, 0); } public ProgressBarWebView(Context context, AttributeSet attrs, int defStyle){ super(context, attrs, defStyle); // TODO // your code } } |
這段代碼會有什么問題呢?在使用ProgressBarWebView的時候,如果在layout中不指定style的話,那么將會進入到
public ProgressBarWebView(Context context, AttributeSet attrs){ this(context, attrs, 0); } |
構造方法中,這里我們指定為0,如果去查看Android WebView的源代碼,是如下定義的
public } |
總結
以上就是自己總結的一些方法,希望對大家有幫助~
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!