如果活动的参数“ActionBar
”设置为“uiOptions
”,则Android splitActionBarWhenNarrow
可能会拆分为顶部和底部栏,请注意此参数仅在ICS中有效。
Honeycomb使用操作栏为多选列表项引入了一种新方法。当一件物品被按下时保持列表变为多选模式,操作栏可用于完成某些操作。操作栏设置继承自列表活动,即,如果活动具有拆分操作栏,则多选也将具有,并且如果活动仅具有顶栏,则多选将符合该选项。
问题是,是否可以在活动中只有一个顶部操作栏,当列表变为多选模式时,以编程方式拆分操作栏?
谢谢!
答案 0 :(得分:26)
不,您无法动态切换分割和非分割操作栏。
android:uiOptions
的设置者对应Window
,而不是Activity
。 Window#setUiOptions
是方法,要使用的标记是ActivityInfo#UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW
。
然而,这不会做你想要的。必须指定狭义时的分割操作栏,因为在初始化窗口装饰之前首先配置窗口。换句话说,一旦窗口显示出来(甚至一旦你调用了setContentView
),就改变它为时已晚。
这是Android UX团队有意识的决定。操作模式(包括选择模式)用于镜像当前活动上操作栏的配置。这为用户提供了在同一活动中查找当前有效操作的单一位置。
答案 1 :(得分:2)
我不相信。 Activity
中没有任何内容可以作为android:uiOptions
的对应设置。
答案 2 :(得分:1)
答案 3 :(得分:0)
您可以尝试在getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW)
中Activity
设置ActionBar
onCreate()
,使其显示为getActionBar.hide()
之前的分割,然后使用getActionBar.show()
隐藏它并在您要引用的列表操作上使用ActionBar
弹出窗口。
我尝试过(不是使用支持库),在Activity
中显示{{1}},使用上面的方法在另一个中分割,并且可以隐藏并显示按钮点击的拆分。希望这可以帮助。如果它确实甚至没有,请告诉我。快乐的编码。 :)
答案 4 :(得分:0)