Layout _width ,Layout_height和heigh ,width 区别:

By | 03月14日
Advertisement

Layout,翻译为中文的意思是 布局,安排,版面设计。对于许多的组件的命令,都有Layout_x和x 的区别,而许多的区别很明显,直接是Layout是相对于父容器(一般就是整个xml的布局)的改变,一个是相对于组件本身的改变。比较典型的就是gravity和layout_gravity,当然也有例外的 ,比如Layout_margin和panding。

对于每个组件,可以独自的使用Layout _width ,layout_heigh直接的设置相对于父容器的大小,

设置为 wrap_content或者 match_parent. 但是heigh ,width不能设置这样设置,不能设置相对于父容器,否则会产生

error: Error: String types not allowed (at 'width' with value 'wrap_content')。

并且,一个组件可以只有Layout _width ,layout_height。但却不能只有heigh ,width,而没有Layout _width ,layout_height,因为那样的组件会看不到。如果你要使用heigh ,width的话,就要先设置Layout _width ,layout_height,把heigh ,width用来作为组件的微调使用。

Xml:

[html] view plain copy print?

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="match_parent"
  3. android:layout_height="match_parent"
  4. android:orientation="vertical" >
  5. <Button
  6. android:layout_width="wrap_content"
  7. android:layout_height="wrap_content"
  8. android:text="hello talk"
  9. android:textColor="#482" />
  10. <Button
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:height="80dp"
  14. android:text="hello talk"
  15. android:textColor="#810"
  16. android:width="80dp" />
  17. <TextView
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="hello talk"
  21. android:textColor="#482" />
  22. <TextView
  23. android:layout_width="wrap_content"
  24. android:layout_height="wrap_content"
  25. android:height="80dp"
  26. android:text="hello talk"
  27. android:textColor="#810"
  28. android:width="80dp" />
  29. </LinearLayout>

截图:

Layout _width ,Layout_height和heigh ,width 区别:

可以看出来不是改变的字体,而是直接改变的组件本生,但在TextvView中,好像效果不是很明显。

我们知道,其实在设置宽高的时候,我们是可以直接的把宽高设置为定制为:xdp,在这方面,Layout _width ,layout_height或者heigh ,width一样都可以设置。

至于还有其他的区别,有待发现中,呵呵!!

去网上找了下相关的,有这种说法:

若还要讲讲两者的区别的话,那就是:
android:width 的值,一般是 "100dp" 这样的数值;
android:layout_width 的值,一般是"fill_parent","wrap_content","match_parent".当然,它也可以像前者一样,设置数值的.

带"layout"的属性是指整个控件而言的,是与父控件之间的关系,如 layout_gravity 在父控件中的对齐方式, layout_margin 是级别相同的控件之间的间隙等等;

不带"layout" 的属性是指控件中文本的格式,如gravity是指文本的对齐方式等等,而其中文本的格式又受制约于它的控件在父控件中的属性.

至于说layout的属性是针对文本的,在这个例子中没有得到很好证实,因为对文本设置了宽高为 80dp,可是也没啥效果啊。

http://blog.csdn.net/yueqinglkong/article/details/10243551

Similar Posts:

  • Android Layout的layout_height等属性为什么有时会不起作用?

    有的时候,我们配置好的布局文件,在加载完成添加到我们的Activity中后发现,并没有安装我们设置的属性来布局,比为我们设置了android:layout_marginTop="100dip",但是运行程序后发现一点作用都没有,相似的还有layout_height等以android:layout_开头的属性设置都没有作用,这类问题以我们使用Adapter的作为数据源的时候作用居多,因为Adapter里有一个方法是getView,这个返回的VIew是一个从XML布局里加载的,一般如下:

  • [置顶] ExtJs常用布局--layout详解(含实例)

    序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor 另外,不常见的布局有:tab.vbox.hbox 本文所有实例代码已提供下载,下载链接:ExtJs常用布局--layout详解实例代码 简介: 最常用的边框布局--BorderLayout 最简单的布局--FitLayout 制作伸缩菜单的布局--Accordion 实现操作向导的布局--CardL

  • Delphi中Self和Sender的区别(转)

    在事件处理程序参数表中,至少含有一个参数Sender,它代表触发事件处理程序的构件,如在上例中,Sender就指Button2,有了Sender参数,可以使多个构件共用相同的事件处理程序,如下例: Procedure Tform1.Buttonclick(Sender:Tobject); Begin If sender=button1 then Label1.caption:=′看庭前花开花落 ′ Else Label2.caption:=′望天上云卷云舒′ End: 在此例中,Button1,

  • Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析

    转自http://blog.csdn.net/qinjuning/article/details/8051811 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PARENT/FILL_PARENT属性的原理说明 xml布局文件解析成View树的流程分析. 希望对大家能有帮助.- - 分析版本基于Android 2.3 . 1.WRAP_CONTENT.MATCH_PARENT/FILL_PARENT 初入Android殿堂的同学们,对这三个属性一定又

  • Android 自定义控件源码分析----谈Android自定义控件中 onMeasure()方法处理 wrap_content 情况的必要性

    转载请注明本文出自 clevergump 的博客:http://blog.csdn.net/clevergump/article/details/50545257, 谢谢! 前言: 这是一篇与 Android 自定义控件相关的源码分析的文章. 阅读本文前, 读者最好能对 Android 基础知识和自定义控件的基础知识 (例如: onMeasure(), onLayout(), onDraw(), MeasureSpec等) 都有一定的了解, 至少进行过一些简单自定义控件的设计, 否则建议你先学习

  • 帧布局(FrameLayout)之跑马灯

    各位看客,今天主要学习的是,布局之帧布局FrameLayout. 这玩意从何而来:FrameLayout 直接继承至 ViewGroup组件. 它的子元素该受啥控制:它的子元素受FrameLayout.LayoutParams 控制.没错,受它控制呢,咱们就可以设置 android.layout_gravity 属性 (相对于父容器的对齐方式设置) 它的特点:它为每个加入的组件都创建一个空白区域(一帧),将组件一个个的叠加在一起,叠加顺序是 最后的组件显示在最上层. 基本概念就是这么个情况!直接

  • Adnroid-FrameLayout布局

    FrameLayout:帧布局容器为每个加入其中的组件创建一个空白的区域,一个空白区域称为一帧,帧布局容器会把容器中的所有组件一个一个叠放在一起(同一位置),这一点和AWT中的CardLayout相似,但不同点是FrameLayout不能把下面的组件移到上面.相当于是图层效果. XML属性 相关方法 说明 Android:foreground setForeground(Drawable) 设置该帧布局容器的前景图像 Android:foregroundGravity setForeground

  • Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQLite的工具类. MainActivity.java package com.example.sqlitetest; import android.app.Activity; import android.database.Cursor; import android.database.SQLExceptio

  • 归属地显示&amp;归属地显示风格设置&amp;归属地显示的位置&amp;趣味小火箭&amp;4.趣味题:两次点击退出

    知识点 概念 注意事项 归属地显示功能 用户外拨 来电 时显示归属地 Service 运行后台程序: 所有界面都退出 仍然运行程序 1.继承 2.重写 3.配置 4.启动 来电 TelephoneManager通讯参数 1.sim卡号码 2.状态 响铃 接通 空闲 PhoneStateListener(来电号码) 权限 READ_PHONE 外拨 BroadcastReceiver拦截外拨电话的广播 action 权限 PROCESS_OUT_CALL 注意优先级 WindowManager 1

  • Javascript]javascript 继承实现方法

    Javascript的继承机制并不是明确规定的,而是通过模仿实现的,意味着继承不是由解释程序处理,开发者有权决定最适合的继承方式. 下面我给出几种常用的方法: 1 .对象冒充 原理: 构造函数使用this关键字给所有属性和方法赋值, 因为构造函数只是一个函数,所以可以使ClassA的构造函数成为classB的方法,然后调用它.这样classB就会收到classA的构造函数中定义的属性和方法.例子: function classA(name) { this.name=name; //定义本类的属性

Tags: