Menu、Dialog、Fragment

  • Menu的相关API:
  • Menu的一般使用方法:
  • Dialog:
    • 常用的4种Dialog:
  • Fragment

Menu的相关API:

Menu的一般使用方法:

一、optionmenu:
1、使用XML定义菜单:

1、在res/menu下新建XML文件:
XML文件以<menu>为根标签,另外俩个标签<item><group>
<menu>标签没有任何属性,可以嵌套在<item>标签中,表示子菜单的形式
<item>下不能再嵌套<item>

<item>标签属性
1、id:菜单项资源id
2、menuCategory:菜单项种类
3、orderInCategor:同类菜单项排列顺序
4、title:菜单项标题,即菜单项显示的文本
5、titleCondensed:菜单项短标题,当菜单项标题太长时会显示该属性值
6、icon:菜单项图标资源id
7、checkable:菜单项是否带复选框
8、checked:再checkable=true时,表示复选框默认状态是否被选中
9、visible:菜单项默认状态是否可视
10、enable:菜单项默认状态是否被激活
<group>标签属性
1、id
2、menuCategory:菜单项种类
3、orderInCategor:同类菜单项排列顺序
4、checkableBehavior:设置该组所有菜单项上吓死你hi的选择组件

1、all:显示CheckBox组件
2、single:显示Radio Button组件
3、none:不显示组件

2、创建optionmenu菜单
3、编写触发事件

2、使用代码定义菜单:


问题:当我们动态添加icon时菜单不显示icon,4.0之前可以显示,4.0之后不显示,原因是在菜单创建时通过系统的menuBuuider创建菜单,默认icon的可显示属性为false,所以需要用到反射方法来获取该属性
该方法在菜单打开时触发

二、contextMenu:

1、在需要上下文菜单的控件上注册上下文菜单registerForContextMenu()

2、创建上下文菜单:

3、上下文菜单触发事件:

三、子菜单:

在<item>中嵌套<menu>,在<menu>中在设置<item>

Dialog:

Dialog是模拟异步的,弹出对话框与用户交互时后台线程还是继续执行的

常用的4种Dialog:

1、常用方法:

2、一般使用步骤:
1、实例化一个Builder对象
2、用Builder对象设置Dialog对话框
3、不同按钮的添加:

三类不同的按钮的添加:

4、编写响应事件:


5、用Builder.create().show()显示
推荐使用它的一个内部类AlertDialog.Builder创建。使用Builder对象,可以设置AlertDialog的各种属性,最后通过Builder.create()方法就可以得到AlertDialog对象。使用Builder.show()方法显示对话框,他就会返回一个AlertDialog对象

Fragment

1、在Android3.0中引入了Fragment的概念,目的是为了解决不同屏幕分辨率的动态和灵活的UI设计
2、Fragment必须被写成可重用的模块,因为Fragment拥有自己的生命周期和布局,可以接受、处理用户事件
3、Fragment不能单独存在,它必须嵌入到Activity中,而且Fragment的生命周期直接受所在的Activity影响
4、在Activity运行时(在onResume()之后,onPause()之前),可以单独的操作每个Fragment,如添加或者删除他们
5、执行针对Fragment的事务时,可以将事务添加到一个栈中,这个栈被Activity管理,入站的每一条即一次Fragment事务。这样就可以在Fragment级支持返回键

1、Fragment生命周期:


2、Fragment常用API:

3、Fragment常用方法:

4、Fragment的一般使用步骤:

1、静态使用Fragment:

2、动态使用Fragment:

Android开发:5-3、Menu、Dialog、Fragment相关推荐

  1. Android开发之漫漫长途 XII——Fragment 详解

    作者:忘了12138 地址:http://www.cnblogs.com/wangle12138/p/8351907.html 声明:本文是 忘了12138 原创投稿,转发请联系原作者授权 该文章是一 ...

  2. Android开发之漫漫长途 XII——Fragment详解

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  3. android开发学习——关于activity 和 fragment在toolbar上设置menu菜单

    在做一个项目,用的是Android Studio 系统的抽屉源码,但是随着页面的跳转,toolbar的title需要改变,toolbar上的menu菜单也需要改变,在网上找了好久,也尝试了很多,推荐给 ...

  4. 学徒浅析Android开发:第三讲——Dialog的常用方法介绍(二)

    经过(一)的基础介绍,现在小编将在(二)中给大家介绍以下几种效果: 1.点击查看组图(模拟QQ空间图片浏览) 2.缩略图放大(自定义Dialog) 3.动态加载进度条 一.点击产看组图(模拟QQ空间图 ...

  5. android 多个catch,【Android开发坑系列】之try-catch

    try { mViewPager.postDelayed(new Runnable() { @Override public void run() { getCurrentPage().render( ...

  6. Android开发-Fragment嵌套Fragment

    Android开发-Fragment嵌套Fragment 前言 使用依赖 远程仓库地址 布局实现 使用控件 xml代码 Java实现 效果图 项目地址 前言 在大多数公司中,他们会尽量少写Activi ...

  7. 【移动开发】Android中强大的适配功能----Fragment(碎片)总结

    作为大多数刚接触Android应用开发的人来说,在一个强大的Activity类中,就可以完成丰富多彩的UI工作,但是杂乱的屏幕分辨率,使得本来好不容易写好的UI,变得不堪入目...该怎么办那? 查阅了 ...

  8. android黑色半透明dialog背景,Android开发中Dialog半透明背景消失

    近日,遇到一个Dialog半透明背景消失的问题,背景需求是自定义Dialog实现警告提示框: // 初始化警告弹出框 alertDialog = new EmpAlertView(context, U ...

  9. android viewpager fragment传值,Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题...

    前言 之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似 viewPager.setAdapter(new FragmentPagerAdapt ...

  10. Android游戏开发系统控件-Dialog

    Android游戏开发系统控件-Dialog Dialog(对话框)在Android应用开发中经常用到,下面是学习<Android游戏编程从零开始>一书,关于Dialog的初步学习. 创建 ...

最新文章

  1. sorry for yesterday
  2. hdu 1116 Play on Words(欧拉通路)
  3. html滚动菜单置顶,javascript改变position值实现菜单滚动至顶部后固定
  4. “贩卖”国潮新鲜感的花西子、完美日记们,能炒多久?
  5. 【机器学习】一文速览机器学习的类别(Python代码)
  6. Solr的安装步骤及增删改查代码示例
  7. 【Docker】Docker 删除所有容器和镜像
  8. SAP Spartacus 服务器端渲染的单步调试
  9. Shopee:阿里神话被打碎,东南亚第一电商平台的崛起史
  10. Java、JavaScript、C/C++、Python分别用来开发什么?
  11. 小微风控模型汇总与企业征信报告指南
  12. quartus仿真系列1:74163的计数功能
  13. Android的富文本功能
  14. Silverlight3.0教程下载
  15. 商业数据可视化分析基础知识
  16. 8 项目沟通管理和干系人管理
  17. 通俗的理解:什么是编程语言?
  18. “强省会”从产业开始,长沙市智能汽车产业促进会正式授牌
  19. 时光机················
  20. jsp使用session出现The server encountered an unexpected condition that prevented it from fulfilling the r

热门文章

  1. 拜托,别再拿毒鸡汤祸害我们了,我们已经很苦很努力了
  2. 程序员如何拓展知识面 推荐几个技术公众号
  3. HTML5新特征、窍门和技术(1~5)
  4. js 小数自动补0_JavaScript 时分秒时间代码(自动补零)
  5. 关于编程学习的一些思考 | 欢迎投稿
  6. 给大家推荐9个专业分享生信技术的公众号
  7. 如何在data visualization 中update svg_如何操作小程序页面中data数据区中的数据
  8. php原生导出excel文件的两种方法
  9. wamp 配置 mysql_PHPWAMP配置应该如何修改,Web服务器、php、mysql的具体配置修改
  10. 实现树状结构_组合模式 - 树状结构的优雅实现