【问题标题】:How to control ActionBar split programmatically?如何以编程方式控制 ActionBar 拆分?
【发布时间】:2011-11-25 16:28:53
【问题描述】:

如果activity的参数“uiOptions”设置为“splitActionBarWhenNarrow”,androidActionBar可能会分裂成顶部和底部的bar,注意这个参数只在ICS中有效。

Honeycomb 引入了一种使用操作栏多选列表项的新方法。当一个项目被按下并按住时,列表变为多选模式,并且操作栏可用于完成某些操作。 actionbar 的设置继承自 list Activity,即如果 Activity 有一个拆分的 action bar,那么多选也会有,如果 Activity 只有顶栏,那么,多选将符合该设置。

问题是,是否可以在 Activity 中只有一个顶部操作栏,并且当列表变为多选模式时以编程方式拆分操作栏?

谢谢!

【问题讨论】:

  • 我也希望它拥有这个功能。
  • 好吧,你总是可以做一个自定义底栏,如果有一种情况,它会在上面,如果 - 就像你说的 - 显示列表
  • 请访问下面的链接以查看操作方法

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


【解决方案1】:

不,您不能即时在拆分和非拆分操作栏之间切换。

android:uiOptions 对应的setter 位于Window,而不是ActivityWindow#setUiOptions 是方法,使用的标志是ActivityInfo#UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW

但是,这不会做你想做的事。必须指定窄时拆分操作栏,因为在初始化窗口装饰之前首先配置窗口。换句话说,一旦窗口显示出来(或者甚至一旦你调用了setContentView),就为时已晚。

这是 Android UX 团队有意识的决定。操作模式(包括选择模式)旨在反映当前活动上操作栏的配置。这为用户提供了一个单一位置来查找同一活动中当前有效的操作。

【讨论】:

  • 是的,但我的用户似乎很难在操作模式下找到上下文操作,因为大多数操作会溢出到溢出菜单中,因为“X Selected”文本会告知他们有多少他们当前选择的项目。
  • 如果该特定操作模式是您的 UI 的重要组成部分并提供了许多选项,您可以考虑为该活动全职使用拆分栏。
【解决方案2】:

我不这么认为。我在Activity 中看不到任何可以作为android:uiOptions 的setter 对应物的东西。

【讨论】:

    【解决方案3】:

    AppCompat 包现在提供了 Toolbar 小部件,允许您将操作栏放在布局中您想要的任何位置,并像任何其他视图一样对其进行修改..

    请参阅完整文档 here 和指南 here

    【讨论】:

      【解决方案4】:

      您能否尝试在Activity 中设置getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW),您希望ActionBar 在其onCreate() 之前显示为拆分,然后使用getActionBar.hide() 将其隐藏,并在您指的列表操作上制作它使用getActionBar.show()弹出回来。

      我尝试(但不是使用支持库)在一个 Activity 中显示 ActionBar 并使用上述方法在另一个中显示拆分,并且能够隐藏和显示按钮单击时的拆分。希望这可以帮助。让我知道,以防它发生或什至没有。快乐编码。 :)

      【讨论】:

        【解决方案5】:

        您可以使用两个工具栏。看看这些问题:

        AppCompat v7:21 Split Action Bar Broken?

        How to center action menu on toolbar

        【讨论】:

          猜你喜欢
          • 2011-04-06
          • 2019-04-11
          • 2017-06-26
          • 2011-07-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多