Android ActionMode模式使用
阿新 • • 發佈:2018-04-10
ActionMode模式使用ActionMode模式
ActionMode模式為在頁面產生一個懸浮的類似於ActionBar的控件,懸浮在ActionBar之上。
使用它的好處在於,不需要在頁面上再增加操作控件,充分利用頁面空間。
ActionMode啟動方式
此方法在Activity類中實現,繼承自Activity類可以使用。
// API11加入(默認模式TYPE_PRIMARY) public ActionMode startActionMode(ActionMode.Callback callback); // API23加入 public ActionMode startActionMode(ActionMode.Callback callback, int type);
API23加入帶type類型構造,分別為TYPE_PRIMARY
和TYPE_FLOATING
TYPE_PRIMARY
: The action mode is treated as a Primary mode. This is the default.(默認類型)TYPE_FLOATING
: The action mode is treated as a Floating Toolbar.(浮動工具欄類型,回調需要使用ActionMode.Callback2,實現onGetContentRect
方法,定位浮動工具欄位置)
ActionMode監聽回調
實現ActionMode.Callback接口。
private class MyActionModeCallback implements ActionMode.Callback { @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { // ActionMode創建,定義menu菜單。 MenuInflater menuInflater = mode.getMenuInflater(); menuInflater.inflate(R.menu.action_mode_menu, menu); return true; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { // ActionMode工作前的預先處理 mode.setTitle("ActionMode"); return false; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { // menu菜單Item點擊回調 if (item.getItemId() == R.id.menu_confirm) { mode.finish(); } return false; } @Override public void onDestroyActionMode(ActionMode mode) { // ActionMode模式結束處理(點擊左側取消,或者點擊返回鍵結束ActionMode模式)。 // ActionMode.finish()執行後會結束ActionMode模式,此時會執行這裏。 } }
ActionMode樣式自定義
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- 左側返回按鈕圖片 -->
<item name="actionModeCloseDrawable">@mipmap/ic_launcher</item>
<!-- 其他需要修改樣式可以在這裏自定義 -->
</style>
Android ActionMode模式使用