標籤: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模式使用