android – 为什么softkeyboard不会在带有WebView的Fragment中显示

android – 为什么softkeyboard不会在带有WebView的Fragment中显示,第1张

概述我正在使用兼容包,我有一个片段,它在onCreateView中返回一个WebView.问题是如果在活动的onCreate期间没有添加片段,那么当在WebView内部单击文本框时,不会显示软键盘.如果在添加自定义Web片段后旋转设备,则重新创建活动,然后在单击文本字段时显示软键盘. 只是要清楚以下是两种不同的场景 public void onCreate(Bundle state){ if(s 我正在使用兼容包,我有一个片段,它在onCreateVIEw中返回一个WebVIEw.问题是如果在活动的onCreate期间没有添加片段,那么当在WebVIEw内部单击文本框时,不会显示软键盘.如果在添加自定义Web片段后旋转设备,则重新创建活动,然后在单击文本字段时显示软键盘.

只是要清楚以下是两种不同的场景

public voID onCreate(Bundle state){   if(state == null){      WebFragment web = new WebFragment();      getSupportFragmentManager.beginTransaction().add(androID.R.ID.content,web).commit();   }}public voID onClick(VIEw v){      WebFragment web = new WebFragment();      getSupportFragmentManager.beginTransaction().add(androID.R.ID.content,web).commit();}

在第一种情况下,在Activity onCreate方法中添加片段时,片段中包含的WebVIEw在按下文本字段时应该正常工作.但是,在第二个示例中,单击webvIEw中的文本字段时没有任何反应,除非在显示webvIEw后旋转设备.有人可以提供一个解决方案,如果我必须为我的片段创建一个新的活动才能正常工作,它首先要胜过片段的目的.

解决方法 将其添加到Fragment的onCreateVIEw方法中
webvIEw.setontouchListener(new VIEw.OntouchListener() {    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;    }});

测试了androID 2.3.3和3.2.0.

基于issue #7189和StackOverflow

总结

以上是内存溢出为你收集整理的android – 为什么softkeyboard不会在带有WebView的Fragment中显示全部内容,希望文章能够帮你解决android – 为什么softkeyboard不会在带有WebView的Fragment中显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1130870.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存