[Android] Toolbar 與 ActionMode 的運用
我想很多人不知道有這個ActionMode的存在,好啦...我承認之前真的不知道。
值得高興的是Toolbar也有支援ActionMode,可以讓我們更方便的在特殊時刻切換至想要的Menu。
接下來就來說明如何應用:
ActionMode actionMode; //為了可以對ActionMode做外部的更改
Toolbar toolbar = (Toolbar) findViewById(R.i.toolbar);
toolbar.toolbar.startActionMode( new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
actionMode = mode; //取得目前的ActionMode
mode.getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
//準備
mode.setTitle("Title");
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
//Menu Item 點擊
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
//當ActionMode移除
}
});
其實用法就這麼簡單,但當完成的時候,肯定會發現為什麼沒有覆蓋Toolbar,
這時候我們只要加入下面這行:
<item name="windowActionModeOverlay">true</item>
那麼ActionMode就可以覆蓋在Toolbar上面。
Before
After
本文转自:[Android] Toolbar 與 ActionMode 的運用
补充:该item添加在styles.xml文件的style标签里面,例如
<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="windowActionModeOverlay">true</item><!--添加在style标签里面-->
</style>
activity : windowActionModeOverlay="true" 时ActionMode 弹出时覆盖部分布局,若 false 则不覆盖,将原有布局下移。