首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向MultiChoiceModeListener ActionMode隐藏后退按钮?

如何向MultiChoiceModeListener ActionMode隐藏后退按钮?
EN

Stack Overflow用户
提问于 2017-10-26 09:36:58
回答 1查看 371关注 0票数 0

我试图从一个Contextmenu中隐藏一个back button,当我们长时间单击Listview项目时,该菜单就会出现。我不知道如何访问actionMode菜单的条目,我尝试了actionMode.getMenu().getItem(),但它没有向我显示后退的button id。项目似乎是这个菜单中的一个默认项目,因为我从不膨胀它。

在这里,代码:

代码语言:javascript
复制
        _m_list_view.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
            _m_list_view.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
            _m_tweet_adaptateur.setChoiseMode(_m_list_view.getChoiceMode());
            _m_list_view.setItemChecked(i, true);
            return true;
        }
    });

    _m_list_view.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
        @Override
        public void onItemCheckedStateChanged(ActionMode actionMode, int i, long l, boolean b) {

            updateActionModeTitle(actionMode);
            if(_m_list_view.getCheckedItemCount()==0) {
                _m_list_view.setChoiceMode(ListView.CHOICE_MODE_NONE);
            }
        }

        @Override
        public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
            mActionModeIsActive = true;
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.context_menu_tweet, menu);
            actionMode.setCustomView(LayoutInflater.from(MainActivity.this).inflate(R.layout.menu_select_tweet, null));
            updateActionModeTitle(actionMode);
            return(true);
        }

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

        @Override
        public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
            switch (menuItem.getItemId()) {
                //quand on appui sur ok dans le menu
                case R.id.item_select_multi_tweet:
                   //code when ok
                    }
                    return true;
                default:
                    return false;
            }
        }


        @Override
        public void onDestroyActionMode(ActionMode actionMode) {
            //_m_list_view.setChoiceMode(ListView.CHOICE_MODE_NONE);
            mActionModeIsActive = false;
            _m_tweet_adaptateur.setChoiseMode(_m_list_view.getChoiceMode());
            _m_list_view.setAdapter(_m_tweet_adaptateur);
        }
    });

我想要的只是删除/隐藏这个项目:

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-26 13:20:07

我找到了解决方案,只需将一个项actionModeCloseButtonStyle添加到styles.xml中:

代码语言:javascript
复制
    <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="actionModeCloseButtonStyle">@style/NoCloseButtonActionModeStyle</item>
</style>

<style name="NoCloseButtonActionModeStyle">
    <item name="android:visibility">invisible</item>
</style>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46950819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档