Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 操作模式栏向下推工具栏_Android_Android Actionbar_Toolbar_Actionmode - Fatal编程技术网

Android 操作模式栏向下推工具栏

Android 操作模式栏向下推工具栏,android,android-actionbar,toolbar,actionmode,Android,Android Actionbar,Toolbar,Actionmode,在我的应用程序中,我正在使用官方文档(v7 appcompat支持库,Theme.appcompat.Light.NoActionBar,android.support.v7.widget.Toolbar,setSupportActionBar(myToolbar))中解释的工具栏。: 我有一个ExpandableListView,我想在长时间单击某个项目时实现上下文操作模式。为了实现这一点,我使用: setMultichoiceModelListener(新的MultichoiceModel

在我的应用程序中,我正在使用官方文档(v7 appcompat支持库,
Theme.appcompat.Light.NoActionBar,android.support.v7.widget.Toolbar,setSupportActionBar(myToolbar))中解释的工具栏。

我有一个
ExpandableListView
,我想在长时间单击某个项目时实现上下文操作模式。为了实现这一点,我使用:
setMultichoiceModelListener(新的MultichoiceModelListener())
。 但是,通过这种方式,操作模式栏显示在屏幕顶部,按下工具栏(我认为这是因为系统使用普通操作模式,而不是支持操作模式)。我希望它显示在工具栏上

我尝试了这个解决方案:

windowActionBarOverlay = true

但它不起作用。

您可以在适配器中使用此代码

 public boolean multiSelect = false;
private ArrayList<String> selectedItems = new ArrayList<>();
ActionMode modee;
private ActionMode.Callback actionModeCallbacks = new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        multiSelect = true;
        menu.add("Delete");
        modee=mode;
        return true;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        for (int i = 0; i < selectedItems.size(); i++) {
            for (int j = 0; j < sizeOfdata; j++) {
                if (data.get(j).getFull_name() == selectedItems.get(i)) {
                    data.remove(j);
                    deleteContact(selectedItems.get(i));
                     //or your code 
                    break;
                } else {
                    // continue;
                }
            }
        }
        mode.finish();
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        multiSelect = false;
        selectedItems.clear();
        notifyDataSetChanged();
    }
};
public boolean multiSelect=false;
private ArrayList selectedItems=new ArrayList();
动作模式;
私有ActionMode.Callback actionModeCallbacks=新ActionMode.Callback(){
@凌驾
公共布尔onCreateActionMode(ActionMode模式,菜单){
multiSelect=true;
菜单。添加(“删除”);
modee=模式;
返回true;
}
@凌驾
公共布尔onPrepareActionMode(操作模式,菜单){
返回false;
}
@凌驾
公共布尔值onActionItemClicked(ActionMode模式,菜单项){
对于(int i=0;i
我也遇到了这个问题。
您尝试的解决方案有点不对劲。

请尝试在应用程序的主题中设置
true

。这将根据需要将操作模式栏覆盖在工具栏上。

您找到解决方案了吗?我很想看看。[这就是你要找的吗?你能发布一些你的代码片段吗?@Ifta