Android中fill_parent、wrap_content与match_parent区别

  • 内容
  • 评论
  • 相关

在Android中,组件的布局具有两个属性:layout_width和layout_height,用于定义该组件的宽和高。

这三个属性就是Android提供的三种默认值。

当然我们完全可以精准的定义宽度和高度,但是这样肯定是很糟糕的,安卓设备有各种屏幕大小和分辨率,不清楚程序会在什么样的分辨率下运行就直接固化她的长宽绝对会出问题。

所以Android提供的这几个属性理所当然的最常出现在应用程序开发中。

那么他们有什么不同呢,请往下看:

1、fill_parent

fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnButton1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button CJP"/>
</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnButton1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Button CJP"/>
</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnButton1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Button CJP"/>
</RelativeLayout>

2、wrap_content

wrapcontent布局指根据视图内部内容自动扩展以适应其大小,设置一个视图的尺寸为wrapcontent将强制性地使视图扩展以显示全部内容。比如一个按钮,按钮中的字体大,那么这个按钮就大,字体小那么相应的按钮就会小些。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/btnButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button CJP"/>
</RelativeLayout>

3、match_parent

API中有这样写:

FILLPARENT (renamed MATCHPARENT in API Level 8 and higher), which means that the view wants to be as big as its parent (minus padding)

所以我认为Android2.2中matchparent和fillparent是一个意思,他们的实际值都是-1,只是名称换了而已,如果考虑兼容低版本那就使用fillparent,否则使用matchparent

不过似乎有些人说”fillparent 是根据屏幕大小, matchparent 是根据屏幕剩下的空位来的“

这一点似乎需要考证,以后有时间测试一下吧。

评论

19条评论
  1. Gravatar 头像

    衡水人才网 回复

    好文章,内容气吞山河.禁止此消息:nolinkok@163.com

  2. Gravatar 头像

    遮阳网 回复

    好文章,内容义正词严.禁止此消息:nolinkok@163.com

  3. Gravatar 头像

    钢板网 回复

    好文章,内容出类拔萃.禁止此消息:nolinkok@163.com

  4. Gravatar 头像

    钢筋网 回复

    好文章,内容笔下生辉.禁止此消息:nolinkok@163.com

  5. Gravatar 头像

    钢板网 回复

    好文章,内容无懈可击.禁止此消息:nolinkok@163.com

  6. Gravatar 头像

    小区声屏障 回复

    不错的文章,内容学富五车.禁止此消息:nolinkok@163.com

  7. Gravatar 头像

    不锈钢窗纱 回复

    不错的文章,内容横扫千军.禁止此消息:nolinkok@163.com

  8. Gravatar 头像

    防风抑尘网 回复

    不错的文章,内容惊心动魄.禁止此消息:nolinkok@163.com

  9. Gravatar 头像

    雷诺护垫 回复

    不错的文章,内容惊心动魄.禁止此消息:nolinkok@163.com

  10. Gravatar 头像

    骨胶 回复

    不错的文章,内容才高八斗.禁止此消息:nolinkok@163.com

  11. Gravatar 头像

    胶管 回复

    不错的文章,内容文笔犀利.禁止此消息:nolinkok@163.com

  12. Gravatar 头像

    不锈钢筛网 回复

    好文章,内容才高八斗.禁止此消息:nolinkok@163.com

  13. Gravatar 头像

    桥梁增高 回复

    不错的文章,内容完美无缺.禁止此消息:nolinkok@163.com

  14. Gravatar 头像

    桥梁伸缩缝 回复

    不错的文章,内容义正词严.禁止此消息:nolinkok@163.com

  15. Gravatar 头像

    边坡防护网 回复

    好文章,内容妙趣横生.禁止此消息:nolinkok@163.com

  16. Gravatar 头像

    护栏网 回复

    好文章,内容文章雅致.禁止此消息:nolinkok@163.com

  17. Gravatar 头像

    高压胶管 回复

    好文章,内容文笔极佳.禁止此消息:nolinkok@163.com

  18. Gravatar 头像

    王如意 回复

    我真的不会了,希望大家帮帮我,帮我直接安装到手机可以吗

发表评论

电子邮件地址不会被公开。 必填项已用*标注