【发布时间】:2011-04-18 21:05:52
【问题描述】:
我正在使用兼容性包,我有一个 Fragment,它在 onCreateView 中返回一个 WebView。问题是如果在Activity 的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 会在按下文本字段时正常工作。但是,在第二个示例中,单击 web 视图中的文本字段时没有任何反应,除非您在显示 web 视图后旋转设备。有人可以提供一个解决方案吗,如果我必须为我的片段创建一个新的活动才能正常工作,它首先会超出片段的目的。
【问题讨论】:
-
@schwiz:我没有看到此示例应用程序存在此问题:github.com/commonsguy/cw-advandroid/tree/master/Honeycomb/… 这是一个 RSS 提要阅读器,在
WebView内的WebView中显示提要项的页面@。因此,此片段是使用基于ListFragment项目点击的事务动态添加的。软键盘很好用。 -
@CommonsWare 感谢您的回复,通过进行这些更改pastebin.com/4WGhD0Mk,我能够在您链接的项目中重现此错误@我没有平板电脑,因此无法在三重疼痛设置,但我担心的是手机。
-
@schwiz: 我不知道
res/layout/test.xml是什么,也不知道test()方法是怎么调用的。请考虑压缩一个完整的项目来演示问题并将其发布到某个地方。 -
@CommonsWare 抱歉,它只是一个简单的布局,带有一个带有属性 onClick="test" 的按钮 pastebin.com/2kFaa6cA。这是完整的项目让dl.dropbox.com/u/673057/FeedFragments.tar.gz
-
@schwiz:软键盘在 XOOM 上的示例代码中看起来非常好。不过,我可以在手机上重现您的问题,例如 Nexus S 和 Droid X。我会尝试清理并提交错误报告。
标签: android webview backwards-compatibility android-fragments