我创建了自己的WebView并设置了WebChromeClient和WebViewClient对象.当我启动此WebView时,HTML表单字段在我触摸它们时会产生反应(光标出现),但它们不会被选中,软键盘也不会启动.如果我使用轨迹球选择表格并按下它,键盘就会出现.
我试着打电话给myWebview.requestFocusFromTouch()为这个答案建议,但它返回false,并没有帮助.
小智 96
http://code.google.com/p/android/issues/detail?id=7189
这是一个修复,以防其他不清楚.
webview.requestFocus(View.FOCUS_DOWN);
webview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus()) {
v.requestFocus();
}
break;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
Ste*_*eve 28
与Dv_MH的回答达成10%的协议.然而,附属课程有点过分.我需要做的就是扩展WebView并为onCheckIsTextEditor()返回true
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
public class LiveWebView extends WebView {
public LiveWebView(Context context) {
super(context);
}
public LiveWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public LiveWebView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onCheckIsTextEditor() {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
从那里,我能够将它用作普通的WebView(甚至在Dialogs中).
或者,使用更少的代码:
WebView web = new WebView(context) {
@Override
public boolean onCheckIsTextEditor() {
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
小智 7
重要 我花了几个小时搜索这个,我通过确保扩展"ViewGroup"的父布局没有属性来解决它
android:descendantFocusability ="blocksDescendants"阻止子布局聚焦
或者 将web:focusable ="true"添加到webview
| 归档时间: |
|
| 查看次数: |
27056 次 |
| 最近记录: |