簡體   English   中英

如何在ActionMode中禁用操作欄后退按鈕

[英]How to disable actionbar back button in ActionMode

我使用ActionMode編輯一些內容,右邊的那三個按鈕可以完成所需的一切,左邊的后面/ home / up按鈕變得多余。

截圖,看左邊的那個按鈕

這是ActionMode

private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        MenuInflater inflater = mode.getMenuInflater();
        inflater.inflate(R.menu.editormenu, menu);
        return true;
    }
    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        return false;
    }
    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_cancel:
                selectedView.onCancelEditing();
                selectedView.enableEditMode(selectedView,false);
                mode.finish(); 
                return true;
            case R.id.action_remove:
                selectedView.enableEditMode(selectedView,false);
                relContainer.removeView(selectedView);
                mode.finish();
                return true;
            case R.id.action_done:
                selectedView.enableEditMode(selectedView,false);
                mode.finish();
                return true;
            default:
                return false;
        }
    }
    @Override
    public void onDestroyActionMode(ActionMode mode) {
        mActionMode = null;
    }
};

我試圖使用back / home / up按鈕作為“取消”按鈕,但似乎它的id不是android.R.id.home也不是R.id.home

所以問題是:如何刪除/禁用此按鈕,或者如何使用它?

只需調用dispatchKeyEvent方法並對其執行操作:查看以下示例:

@Override 
public boolean dispatchKeyEvent(KeyEvent event) {
    if(mActionModeIsActive) { 
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
           // handle your back button code here 
           return true; // consumes the back key event - ActionMode is not finished 
        } 
    } 
    return super.dispatchKeyEvent(event);
} 

有關詳細信息:

通過按后退按鈕禁止取消操作模式

這個答案對我有用:

在長按android中從動作模式中刪除后退/主頁按鈕

我將這些行添加到styles.xml中

 <item name="actionModeCloseDrawable">@color/colorAccent</item>
 <item name="actionModeCloseButtonStyle">@style/Widget.AppCompat.ActionMode</item>
 <item name="actionModeBackground">@color/colorAccent</item>

我使用@color/colorAccent作為ActionMode中ActionBar的背景顏色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM