2014-12-23 106 views
3

我有一個奇怪的情況,我使用webview打開了一個表單頁面,它允許用戶在其中輸入一些信息。當我在三星等設備上嘗試它時,它可以正常工作,但是當我在其他設備(如xiaomi,asus等)中嘗試它時,它不起作用。鍵盤彈出,但是當我輸入它時,頁面中的文本框就失去了焦點。我找到了一個使用這段代碼的工作,但是有一個缺點,每當我觸摸屏幕時,三星的webview總是回到頂部(但在小米等工作正常)。有什麼辦法可以使它們適用於它們兩個?Android WebView無法從某些設備的鍵盤接收輸入

 mPaymentWebView.getSettings().setJavaScriptEnabled(true); 
     mPaymentWebView.getSettings().setUseWideViewPort(true); 
     mPaymentWebView.requestFocus(View.FOCUS_DOWN); 
     mPaymentWebView.requestFocusFromTouch(); 

     mPaymentWebView.requestDisallowInterceptTouchEvent(true); 
     mPaymentWebView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent event) { 
       Log.d("test keyboard","in"); 
       mPaymentWebView.requestFocusFromTouch(); //this makes it work 
       return false; 
      } 
     }); 

,這是我用過的所有回答這個問題的XML

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <WebView 
     android:id="@+id/web_view_payment" 
     android:focusableInTouchMode="true" 
     android:windowSoftInputMode="adjustResize" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    </WebView> 
    <ProgressBar 
     style="?android:attr/progressBarStyleHorizontal" 
     android:id="@+id/progress_bar_webview" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:layout_alignParentBottom="true" 
     android:progress="5" 
     android:max="100" 
     android:progressDrawable="@drawable/progress_bar" /> 

</FrameLayout> 

但他們沒有正常工作 Why is Android WebView refusing user input?

+0

的可能重複[爲什麼就是Android的WebView拒絕用戶輸入?(http://stackoverflow.com/所以卸載更新問題/ 2083909/why-is-android-webview-refusing-user-input) – Gattsu

+0

@maveň我已經使用了所有的答案,但正如我所說的,他們都沒有適用於所有的Android設備 – stephen1706

回答

0

請檢查是否安裝了Android系統的WebView。 如果通過進入設置 - > Apps-> Android系統Webview->卸載更新

相關問題