Android 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_PRIMARYTYPE_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>

原文地址:http://blog.51cto.com/9098858/2096588

时间: 2024-10-11 04:01:39

Android ActionMode模式使用的相关文章

wex5 教程 之 web网站android原生模式打包

如果有成型的web网站,想做成手机app,如何用wex5来打包成apk呢?比如说百度视频,我想打包成自已的apk安装到手机上,怎么做呢? 官方提供了四种打包模式,都需要提供服务地址,也就是说要有一台服务器来提供服务.我只是要把web地址封装一下,apk打开后跳转到网页就行,显然服务地址是不需要的. 那如果用wex5的页面frame组件加载一个web页面呢? 经测试,这种方法可行,问题是,w页面是wex5自创的页面,不是html的document页面,会出现视频格式不能播放,无falsh插件问题.

android Run模式也会出现&quot;Waiting for debugger&quot;的解决方法

android Run模式也会出现"Waiting for debugger"的解决方法 出现“waiting for debugger”窗口是在debug模式下运行出现的.但是,今天我在run模式下也出现了此窗口,并且一直如此.卸载程序重新运行也是如此.android真机在脱离电脑的情况下,会一直死在“waiting for debugger”的. run 后eclipse 就直接跳出 The JAR /home/xxx/.../android.jar has no source a

Android Run模式下提示"Waiting For Debugger"

问:Android Run模式下提示"Waiting For Debugger", 拔掉数据线就一直停在Waiting页面! 试过重启机器, 也是个在manifest里面设置android:debuggable="false", 都不行! 解决:在设置->开发者选项中关闭"调试某个app"

Android -- 启动模式

Android的启动模式分为四种: standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中. singleTop 如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例). singleTask 如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent()).重用时,会让该实例回到栈顶,因此在它上面的实例将会被

Android MVC模式

Android MVC模式 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51172105 前些天看到一篇关于Android MVC模式的技术贴,觉得非常好,所以跟大家分享一下,顺便也说说自己对Android MVC设计模式的见解~~ 算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很

Android夜间模式实现

查看我的全部开源项目[开源实验室] 欢迎加入我的QQ群:[201055521],本博客客户端下载[请点击] 本文原创,转载请注明地址:http://blog.kymjs.com/ 最近在做一个Android夜间模式的功能,又重新研究了一下Theme机制.贯彻我的风格,以解决问题为目标,写了个小Demo,简单了实现了切换夜间模式,为大家讲解. 在Activity中有一个方法叫setTheme(),可以设置Activity的Theme,当然Application类中也有相同的方法,也可以在Appli

Android MVP模式学习(二)----Data Binding结合

公司项目最近已经用MVP模式重新构造完成,重构后的项目直观明了,代码复用性高,易于调试维护. 之后主管让我去了解MVC,MVP ,MVVM,Data Binding相关的知识,于是便有了下面这篇博客.参考资料: 选择恐惧症的福音!教你认清MVC,MVP和MVVM 完全掌握Android Data Binding 这里很感谢这两篇文章的理论与技术支持,感谢这些大神. OK,开始今天的主题. 关于MVP模式与MVVM模式孰是孰非,我想不是我一个初学者短短几句就能够说清楚的,我们也不用纠结于此.引用大

ANDROID 中设计模式的采用--行为模式

 1 职责链模式 职责链模式的意图为:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.职责链模式的结构图如下: 在ANDROID的输入管理系统中提交输入事件到视图时使用了职责链模式,其类图所示: 类图中的ViewRootImpl类的内部类EarlyPost

android MVP模式简单介绍

原文 http://zhengxiaopeng.com/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/ 前言 MVP作为一种MVC的演化版本在Android开发中受到了越来越多的关注,但在项目开发中选择一种这样的软件设计模式需保持慎重心态,一旦确定 使用MVP作为你App的开发模式那么你就最好坚持做下去,如果在使用MVP模式开发过程中发现问题而且坑越来越大,这时你想用MVC等来重新设计的话基 本上就等于推倒重来了.要知道在Android上MVP在现在为止并没有统