android – 在TextView CustomActionModeCallback上选择溢出菜单项

我想在长按文本视图的同时呈现自定义操作栏.我的菜单有超过5个项目,导致某些项目出现在溢出菜单下.

当我按下溢出图标时,操作栏被破坏,我无法选择溢出内的任何项目.

ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {

        public boolean onCreateActionMode(ActionMode mode,Menu menu) {
            MenuInflater inflater = mode.getMenuInflater();
            inflater.inflate(R.menu.add_rule_menu,menu);
            return true;
        }

        public boolean onPrepareActionMode(ActionMode mode,Menu menu) {
            for (int i = 0; i < menu.size(); i++) {
                MenuItem item = menu.getItem(i);
                if (!mOptionsList.contains(item.getItemId()))
                    item.setVisible(false);
            }
            return false;
        }

        // Clicking on overflow button does not trigger this method at all.
        public boolean onActionItemClicked(ActionMode mode,MenuItem item) {
            switch (item.getItemId()) {
             // Rest of the code
            }
        }

        public void onDestroyActionMode(ActionMode mode) {}
    };

    textView.setCustomSelectionActionModeCallback(mActionModeCallback);

解决方法

filed an issue about this years ago,从未解决过.

一个俗气的解决方法是使用嵌套的动作模式.通过这个,我的意思是你有一个动作模式的项目完成当前模式并启动一个新项目,以提供“下钻菜单效果.我在my recently-resuscitated RichEditText widget中使用它,它提供了一种格式化文本的动作模式.我通过setCustomSelectionActionModeCallback()将“format”项添加认操作模式.点击“格式”打开另一个动作模式,提供粗体和斜体等选项,以及进一步的下钻,以便像字体更改一样思考.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...