Android Webview有焦点,但虚拟键盘没有';不显示
我试过这个: 在创建时调用的设置函数为Android Webview有焦点,但虚拟键盘没有';不显示,android,webview,Android,Webview,我试过这个: 在创建时调用的设置函数为 public void begin() { EditText t = (EditText) findViewById(R.id.ccentry); t.setSelected(false); t.clearFocus(); final WebView webview = (WebView) findViewById(R.id.webview); WebSettings webSettings = webview.
public void begin() {
EditText t = (EditText) findViewById(R.id.ccentry);
t.setSelected(false);
t.clearFocus();
final WebView webview = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webview.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
View.OnTouchListener l = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
Log.v("biscuit-focus", "focus");
if (!v.hasFocus()) {
Log.v("biscuit-focus-down", "focusDOWN");
v.requestFocus(View.FOCUS_DOWN);
}
break;
}
return false;
}
};
webview.setOnTouchListener(l);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
printDebug();
webview.requestFocus(View.FOCUS_DOWN);
if (!madeTimer) {
madeTimer = true;
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
handler.obtainMessage(1).sendToTarget();
}
}, 5000, 5000);
}
}
});
webview.loadUrl("myapp.com");
}
当我向下滚动并点击文本字段时,我可以获得USB键盘输入。bikit focus
日志显示但不显示bicuit focus down
这是在运行棒棒糖的Pine64上。您好,请尝试在清单中更改它
<activity
android:name=".ActivityName"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="portrait"></activity>
您可以添加以下代码:
它将100%起作用
webview.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
view.removeOnPreDrawListener(this);
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
// !Pay attention to return `true`
// Chet Haase told to
return true;
}
});
或
祝你好运 @Adarsh我尝试了onTouch侦听器请查看我的代码你好,我不得不将视图更改为webview,因为我没有名为“view”的实例变量。然后我得到:“无法解析removeOnPreDrawListener”@quantumpotato,您好,现在试试。希望能起作用。看起来您已将视图更改为webview。请读m;第二句。找不到getViewTreeObserver()或addOnPreDrawListener更改视图。removeOnPreDrawListener(此);=>。mWebView.getViewTreeObserver().removeOnPreDrawListener(此);
webview.requestFocus(View.FOCUS_DOWN);