[英]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);
}
有關詳細信息:
這個答案對我有用:
我將這些行添加到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.