UI布局
1,初始化控件一般在onCreate()中完成,由于构造器中尚未完成控件加载,不能在其内初始化控件.
2,Activity子类必须含有无参构造.Intent.startActivity()方法调用的是Activity的无参构造来启动Activity的.
3,intent-filter
- Main Activity必须使用category.Launcher作为类别.
- 自定义category必须首先包含category.Default.对于其余的category,在指定Intent时必须使用addCategory方法添加.
- 使用隐式的Intent调用时,如果有多个Activity满足条件时,屏幕会出现选择列表.
4,在Activity间传输数据
- 通过Intent.putExtra/getXxx来传递简单类型或者Serializable.
- 通过Activity的静态变量.需要在startActivity显示之前进行赋值.
- 使用剪贴板.只支持String.对于Serializable对象,=>byte[]=>Base64编码为String.Base64.decode来解码.
- 使用全局对象.getApplicationContext().
- extends Application.且在<application >节点配置该类.
- 返回数据到前一个Activity.
- startActitvityForResult(intent,1).其中,1代表请求码,用以在获取结果时区分请求.
- intent.putExtra(); setResult(2,intent).其中,2代表响应码,
- 重载onActivityResult方法来获取结果.
5,
- 使用XML布局文件定义View.
- 保存在res/layout中的xml文件.
- 布局文件,和其内的视图ID都会在R和R.id类中生成一个对应的变量.所以命名要符合规范.
- 指定ID:@+id/idName.表示如果idName值在R.id中不存在时,产生新的,如果以存在,直接使用之.
- 使用: setContentView(R.layout.Xxx).findViewByID(R.id.Xxx).
- 在代码中控制View.
- setText().如果参数是int类型时,会被认为是字符串资源的ID.所以使用textView.setText(string.valueof(200))来设置int值.
- 一个视图只能有一个父视图.
6,布局.
- FrameLayout
- 以层叠覆盖方式显示.
- layout_gravity:视图在父视图中的位置.layout_marginTop/Bottom,视图的上/下边缘离基线的距离.
- LinearLayout
- orientation:horizontal/vertical.
- gravity属性.控制视图的位置.可以有多个值,使用|分割.
- layout_weight:如果是大于0的值,代表父视图中,除掉该值为0的子视图的高/宽值后,所占据的比例值.响应地拉伸.
- RelativeLayout
- layout_Below/above/toLeftOf/toRightOf.可以指定右下这样的组合值.
- TableLayout
- 一般使用GridView来代替表格布局.
- AbsoluteLayout
- layout_x/y.
- <inculde>来重用布局文件
- 可以覆盖被引用布局文件中的属性值.
- 任意一个布局文件,系统都会在最外层添加一个FrameLayout.
UI布局的更多相关文章
- Duilib源码分析(五)UI布局—Layout与各子控件
接下来,继续分析duilib之UI布局Layout,目前提供的布局有:VerticalLayout.HorizontalLayout.TileLayout.TabLayout.ChildLayout分 ...
- iOS-屏幕适配-UI布局
iOS 屏幕适配:autoResizing autoLayout和sizeClass 一.图片解说 -------------------------------------------------- ...
- AppleWatch___学习笔记(二)UI布局和UI控件
1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...
- iOS开发~UI布局(三)深入理解autolayout
一.概要 通过对iOS8界面布局的学习和总结,发现autolayout才是主角,autolayout是iOS6引入的新特性,当时还粗浅的学习了下,可是没有真正应用到项目中.随着iOS设备尺寸逐渐碎片化 ...
- iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
一.概要:前一篇初步的描述了size class的概念,那么实际中如何使用呢,下面两个问题是我们一定会遇到的: 1.Xcode6中增加了size class,在storyboard中如何使用? 2.a ...
- iOS开发~UI布局(一)初探Size Class
随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class.Size Class配合Auto Layout可以解决 ...
- WPF UI布局之概述
在线演示:http://v.youku.com/v_show/id_XNzA5NDk2Mjcy.html 清晰版视频+代码下载:http://115.com/lb/5lbeer0m9lad 一.简单介 ...
- iOS UI布局调试工具
查看ios软件的ui布局有三种: 1.DCIntrospect 这种方式是开源的,我从github上clone下来后运行demo,运行遇到了问题:Xcode cannot run using t ...
- WPF案例 (六) 动态切换UI布局
原文:WPF案例 (六) 动态切换UI布局 这个Wpf示例对同一个界面支持以ListView或者CardView的布局方式呈现界面,使用控件ItemsControl绑定数据源,使用DataTempla ...
- iOS8开发~UI布局(二)storyboard中autolayout和size class的使用具体解释
一.概要:前一篇初步的描写叙述了size class的概念,那么实际中怎样使用呢,以下两个问题是我们一定会遇到的: 1.Xcode6中添加了size class,在storyboard中怎样使用? 2 ...
随机推荐
- iOS开发——使用OC篇&frame,bounds,center,position,anchorPoint总结
frame,bounds,center,position,anchorPoint总结 图层的 position 属性是一个 CGPoint 的值,它指定图层相当于它父图层的位置, 该值基于父图层的坐标 ...
- ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5
摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...
- [拇指飞动]构建高性能Web站点(1)
<构建高性能Web站点>中提到了Aphache, Nginx和lighthttpd. 把我的笔记share一下. 一般来讲Apache主要是基于多进程模型,早期的fork模式会为每一个re ...
- Working with MTD Devices
转:http://www.linuxforu.com/2012/01/working-with-mtd-devices/ Working with MTD Devices By Mohan Lal J ...
- C语言第七节流程控制
流程控制 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. 循环结构:在给定条件成立的情况下,反复执行某一段代码. ...
- JavaSE——面向对象与面向过程、类与对象、(属性、方法、构造器)等
一:面向对象与面向过程 二者都是一种思想,面向对象是相对于面向过程而言的. 面向过程: 1.面向过程思想强调的是过程(动作). 2.在面向过程的开发中,其实就是面向着具体的每一个步骤和过程,把每一个步 ...
- star
Astronomers often examine star maps where stars are represented by points on a plane and each star h ...
- cocos2dx3.0-执行cocos compile -p win32 命令出现错误 MSB8020 以及编译出来的exe 无法打开的问题
本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 当博主准备把cocos工程用cocos命令行编译出来的时候,报出了MSB8020的错误,具体如下 ...
- iOS tabbar 控制器基本使用
RootViewController *rootVC=[[RootViewController alloc] init] SignInViewController *signVC = [[SignIn ...
- Java线程同步的方式
java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的 ...