【发布时间】:2017-05-20 17:22:11
【问题描述】:
我试过这个:Tapping form field in WebView does not show soft keyboard
我在创建时调用的设置函数是
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 键盘输入。 biscuit-focus 日志显示但不显示 bicuit-focus-down。
这是在运行 Lollipop 的 Pine64 上。
【问题讨论】:
-
@Adarsh 我试试 onTouch 监听器请看我的代码