0

我花了数周时间为我正在构建的应用程序设计自定义 web 视图。我有一个扩展 android WebView 的类(我们称之为 myWebView)。我在 main.xml 中声明了 myWebView,就像您接受任何其他 UI 元素一样,我在 myWebView 前面加上了包名。一切都很好,花花公子。

在我的扩展类的所有功能都运行了数周之后,是时候实现一个选项菜单了。与我一直在做的事情相比,我认为这将是一项相对简单的任务。我覆盖了 onCreateOptionsMenu(),并试图从一个 xml 文件中扩充我的菜单。当我在模拟器中运行我的应用程序并按下菜单按钮时,什么也没发生。我的 onCreateOptionsMenu() 代码没有缺陷。我在一个虚拟活动中尝试了它,它有一个简单的 main.xml,只包含一个常规的 web 视图。菜单在虚拟活动中起作用。然后,我尝试了各种其他方式来填充菜单(使用 menu.add() 的不同实现),它们都在我的虚拟活动中工作,但它们在我的实际应用程序中不起作用。我从我的活动中删除了所有内容,除了 onCreate 和 onCreateOptionsMenu 中的内容,看看我的其他方法中是否有任何东西干扰了菜单的创建。那也一事无成。我将日志语句放入 onCreateOptionsMenu() 以查看该方法是否被调用。瞧,当我按下菜单按钮时,它并没有被调用。最后我进入我的 main.xml 并从布局中删除了 myWebView 的标签。之后,应用程序运行并且菜单工作。

因此,出于某种原因,使用我的自定义 Web 视图会阻止菜单工作。有没有其他人遇到过这个问题?我很难相信您不能使用带有自定义 ui 元素的选项菜单,因此必须有一些解决方法。相反,是否有人构建了自定义 webview 并成功实现了选项菜单,这意味着我必须去重新检查我的代码。如果有人认为它会有所帮助,我会提出我的代码,但我 99.99% 肯定一切都按照最佳实践正确编码,而且我的扩展类的代码非常庞大,需要大量清理。不过,根据我在这里所说的,有人有什么想法吗?

4

2 回答 2

0

奇怪的。我使用 webview 和选项菜单,工作正常。

我不扩展 WebView...我扩展活动,然后在 XML 中配置 webview 或将 webview 添加到“内容视图”。

做所有的 websettings 并添加我自己的 chromeclient 和 viewclient 来改变 webview 的功能。

我刚刚从以编程方式添加菜单切换到使用 XML 描述符。所以我知道它仍然有效。

我正在使用 SDK 7 (2.1.x)

如果您需要扩展 webview,请发布您的原因和一些代码,希望我能提供帮助。

于 2011-03-22T22:16:00.733 回答
-1

实际上我只是想通了。我覆盖键盘事件什么都不做,这就是阻止它发生的原因。显然这是人们犯的一个很常见的错误。我之前一定没有找到谷歌搜索词的神奇组合。谢谢你的帮助。我希望我的错误对你的安卓之旅有所帮助

于 2011-08-15T03:04:19.663 回答