iCl*_*ude 7 android toolbar android-actionbar actionmode
在我的应用程序中,我正在使用官方文档中解释的工具栏(v7 appcompat 支持库,Theme.Appcompat.Light.NoActionBar, android.support.v7.widget.Toolbar, setSupportActionBar(myToolbar)):http :
//developer.android.com/training/appbar/index.html
我有一个ExpandableListView,我想在我长按一个项目时实现上下文操作模式。为了实现这一点,我使用:
setMultiChoiceModeListener(new MultiChoiceModeListener())。但是这样一来,动作模式栏显示在屏幕顶部,按下Toolbar(我认为是因为系统使用的是普通动作模式,而不是支持动作模式)。我希望它显示在工具栏上。
我试过这个解决方案:
windowActionBarOverlay = true
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
我也有这个问题。
您尝试的解决方案有点不对劲。
而不是尝试在您的应用程序主题中<item name="windowActionBarOverlay">true</item>
进行设置。<item name="windowActionModeOverlay">true</item>
这将根据需要将操作模式栏覆盖在工具栏上。
您可以在适配器中使用此代码
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();
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |