23

如果activity的参数“ ”设置为“ ”, androidActionBar可能会分成顶部和底部栏,注意该参数仅在ICS中有效。uiOptionssplitActionBarWhenNarrow

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

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

谢谢!

4

5 回答 5

26

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

对应的 setterandroid:uiOptions是 on Window,不是ActivityWindow#setUiOptions是方法,使用的标志是ActivityInfo#UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW

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

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

于 2011-11-26T18:52:55.120 回答
2

我不相信。我没有看到任何东西Activity可以作为android:uiOptions.

于 2011-11-25T17:21:12.663 回答
1

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

请参阅此处的完整文档此处的指南。

于 2014-11-14T06:56:19.517 回答
0

您是否可以尝试getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW)Activity您希望ActionBar在其之前显示为拆分的 中进行设置onCreate(),然后使用隐藏它getActionBar.hide()并在您所指的列表操作上使用getActionBar.show().

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

于 2014-02-06T20:22:31.867 回答
0

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

AppCompat v7:21 拆分操作栏坏了?

如何在工具栏上居中操作菜单

于 2015-03-03T15:01:02.787 回答