博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android布局注意事项
阅读量:3594 次
发布时间:2019-05-20

本文共 960 字,大约阅读时间需要 3 分钟。

Android的布局还是有一定的讲究的。如何设置布局的属性也要好好学习,刚学习的时候对不居中full_content,wrap_content,match_parent,0dp,layout_weight搞不清楚,终于在曲曲折折中摸索清楚,从Android training course in Chinese中学到了不少,果然是精华。

让输入框充满整个屏幕的宽度

当前EditText和Button部件只是适应了他们各自内容的大小,如下图所示:

edittext_wrap

这样设置对按钮来说很合适,但是对于文本框来说就不太好了,因为用户可能输入更长的文本内容。因此如果能够占满整个屏幕宽度会更好。LinearLayout使用权重的属性来达到这个目的,你可以使用属性来设置。

你可以根据每一个部件所占的空间来指定权重值的大小,它的总数是有同级别的部件来决定的。就类似于饮料的成分配方:“两份伏特加酒,一份咖啡利口酒”,意思就是这个酒中伏特加酒占三分之二。例如,你设置一个View的权重是2,另一个View的权重是1,那么总数就是3,这时第一个View占据2/3的空间,第二个占据1/3的空间。如果你再加入第三个View,权重设为1,那么第一个View(权重为2的)会占据1/2的空间,剩余的另外两个View各占1/4。(请注意,使用权重的前提一般是给View的宽或者高的大小设置为0dp,然后系统根据上面的权重规则来计算View应该占据的空间。但是很多情况下,如果给View设置了match_parent的属性,那么上面计算权重时则不是通常的正比,而是反比,也就是权重值大的反而占据空间小)。

对于所有的View默认的权重是0,如果你只设置了一个View的权重大于0,那么这个View将占据除去别的View本身占据的空间的的所有剩余空间。因此这里设置EditText的权重为1,使其能够占据除了按钮之外的所有空间。

为了提升布局的效率,在设置权重的时候,你应该把的宽度设置为0dp。如果你设置为"wrap_content"作为宽度,系统需要自己去计算这个部件所占有的宽度,而此时的因为你设置了权重,所以系统自动会占据剩余空间,EditText的宽度最终成了不起作用的属性。

下图展示了设置权重时候的结果

edittext_gravity

现在看一下完整的布局文件内容:

转载地址:http://tggwn.baihongyu.com/

你可能感兴趣的文章
设计模式之对象池模式
查看>>
设计模式之责任链模式 Java实例代码 + Tomcat责任链模式应用+安卓责任链模式应用
查看>>
设计模式之命令模式 Java实例讲解 + 线程池中的应用场景
查看>>
设计模式之 解释器模式 Java实例代码演示
查看>>
设计模式之迭代器模式
查看>>
设计模式之空对象模式详解 附Java源码实例
查看>>
设计模式之访问者模式
查看>>
设计模式之享元模式
查看>>
Java代码设计模式讲解二十三种设计模式
查看>>
IDEA的使用教程二:idea的内置快捷键和idea的代码模板设置
查看>>
idea使用教程三:(创建web项目)
查看>>
Window localStorage 属性(永久储存网站的数据)
查看>>
jQuery中的 $(window) load()与$(document) ready()以及jquery $(document) ready() 与window onload 的区别
查看>>
Java创建URL后台访问接口,返回数据(Http请求-HttpClient方法)
查看>>
项目部署调用接口传参编码问题
查看>>
idea每次打开都是选择项目页面
查看>>
IDEA修改文件后出现星号
查看>>
设计模式——单例模式
查看>>
工厂模式
查看>>
ClassUtils——可以由一个接口查找到所有的实现类,也可 以由父类查找到所有的子类
查看>>