Android操作栏:以编程方式单击向上按钮

时间:2012-01-13 15:02:08

标签: android android-actionbar android-4.0-ice-cream-sandwich

您好下,
Android 4(ICS)提供了一个名为ActionBar的视图元素。使用ActionBar,我创建了一个搜索小部件,我可以输入文本来触发远程建议搜索。如果单击此ActionBar中的放大镜图标以打开搜索小部件文本字段,则会发生两件事:

  1. 显示软键盘
  2. "主页按钮" (左上角的app图标)改变了他的 功能到"向上按钮"。 "向上"意思是,你撤消你的上一个 操作(在这种情况下:打开搜索小部件文本字段)
  3. 如果您点击"向上按钮"搜索小部件折叠,以便文本字段消失。在同一时刻"向上按钮"将其功能更改为充当"主页按钮"。此行为描述了"默认"带有附加搜索小部件的Android 4 ActionBar的行为。

    使用硬件"后退按钮"而不是软"向上按钮",键盘消失,但搜索小部件保持打开状态。还有"向上按钮"不会更改为"主页按钮"。

    我的问题: 如何触发"向上按钮"以编程方式在ActionBar中单击?如果我能做到这一点,我可以折叠搜索小部件文本字段并放回"向上按钮"成为"主页按钮"再次,如果用户按下硬件"后退按钮"。

    此示例显示"主页按钮"在最左边和一个封闭的搜索小部件"放大镜图标"在右边。如果用户单击放大镜,则显示文本字段并显示"主页按钮"成为一个"向上按钮"。

    提前致谢!

    enter image description here

3 个答案:

答案 0 :(得分:2)

我认为可以有一个解决方案。正如文档所说,

  

要在用户按下应用程序图标时向上导航,您可以使用NavUtils类的静态方法navigateUpFromSameTask()。

所以你可以手动调用

NavUtils.navigateUpFromSameTask(this);

用于以编程方式执行主页按钮。

答案 1 :(得分:0)

我已经搜索了网络和SO,并且找不到以编程方式触发的任何方法。 我最后只是重新创建了使视图切换回主视图所需的位和片段,同时将操作栏恢复为正常状态并将其放在公共方法中,以便其他类可以使视图回家。

答案 2 :(得分:-1)

您可以通过performClick()上的View以编程方式触发任意视图。

请参阅performClick()文档。