【问题标题】:Android Actionbar: click Up-Button programmaticallyAndroid Actionbar:以编程方式单击向上按钮
【发布时间】:2017-03-28 05:23:05
【问题描述】:


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

  1. 显示软键盘
  2. “主页按钮”(左上角的应用程序图标)改变了他的 “向上按钮”的功能。 "up" 的意思是,你撤消你的最后一个 操作(在这种情况下:打开搜索小部件文本字段)

如果您单击“向上按钮”,则搜索小部件会折叠,因此文本字段会消失。在同一时刻,“向上按钮”将其功能更改为“主页按钮”。此行为描述了带有附加搜索小部件的 Android 4 ActionBar 的“默认”行为。

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

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

此示例在最左侧显示一个“主页按钮”,在右侧显示一个关闭的搜索小部件“放大镜图标”。如果用户点击放大镜,文本框就会显示出来,并且“主页按钮”会变成“向上按钮”。

提前致谢!

【问题讨论】:

  • 我希望你能得到这个答案,我也需要在我的应用程序中触发主页图标上的事件,但找不到其他人尝试过。

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


【解决方案1】:

我认为有办法解决这个问题。正如文档所说,

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

所以你可以手动调用

NavUtils.navigateUpFromSameTask(this);

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您可以通过在View 上调用performClick() 以编程方式触发对任何视图的点击。

      请参阅performClick() 文档。

      【讨论】:

      • 是的,我已经尝试过了。问题是,操作栏没有视图对象。 ActionBar 对象 (activity.getActionBar()) 只提供了一个 getCustomView() 方法。如果不使用 customView,将返回 null。我也试过 activity.getActionBar().setDisplayOptions(ac.getActionBar().DISPLAY_SHOW_HOME);这也行不通。
      • 嘿@LuxuryMode。如果您对如何选择此视图有任何提示,可以分享一下吗?谢谢!
      猜你喜欢
      • 2013-10-09
      • 1970-01-01
      • 2013-02-26
      • 2017-06-17
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多