gpt4 book ai didi

android - 上下文操作栏强制溢出

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:54 24 4
gpt4 key购买 nike

由于 bug in Android,我正在以编程方式构建我的 Actionbar 的菜单项当有两个 Fragments 每个都有自己的菜单时。

我正在 MultiChoiceModeListeneronCreateActionMode 中构建菜单。如果有超过 4 个菜单项,则所有项目都将强制进入上下文操作栏的溢出菜单。

这发生在纵向和横向模式中,但仅当布局处于非平板电脑 View 时(例如,两个 fragment 均未显示)。我正在使用 Android 4.2 的 Galaxy Nexus 进行测试

    mListView = getListView();
mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

mListView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
public boolean onCreateActionMode(android.view.ActionMode mode, android.view.Menu menu) {
// Inflate the menu for the CAB
menu.add(1, 0, 0, "Menu Item 1");
menu.add(1, 1, 1, "Menu Item 2");
menu.add(1, 2, 2, "Menu Item 3");
menu.add(1, 3, 3, "Menu Item 4");
menu.add(1, 4, 4, "Menu Item 5");
return true;
}
}

更新

我已将此问题的范围缩小到如果菜单项超过 4 个,则所有项目都将强制溢出。文本标签的长度无关紧要。我什至将所有文本设置为空字符串,它们仍然被迫溢出。设置 IF_ROOMALWAYS 似乎没有效果。

更新 2

我有另一个使用 OnItemLongClickListener 而不是 MultiChoiceModeListenerFragment,我没有遇到同样的问题。我可以放入 10 个菜单项,它将在 Actionbar 中显示第一对菜单项,并按预期将其余菜单项放入溢出。

更新 3

关于此问题的更多信息,对于纵向模式下的 Nexus 7,问题仍然存在,但是,在非平板电脑 View 中(两个 fragment 都显示),在横向模式下Nexus 7,菜单项显示。我唯一能想到的是,在使用 MultiChoiceModeListener 时会进行一些间距计算,它认为上下文操作栏中没有空间,而实际上有。

最佳答案

Menu.add()方法都返回 MenuItem秒。对于添加的每个 MenuItem,只需调用 MenuItem.setShowAsAction(int)像这样:

MenuItem menuItem = menu.add(1, 0, 0, "Menu Item 1");
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

关于android - 上下文操作栏强制溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com