前言

  今天把对于布局的一些理解写下来,主要内容包括控件的属性的继承关系,控件与容器的属性的关系,以及各种类的属性的使用。

控件的属性种类

  通常意义上讲,我们在对一个控件进行属性赋值的时候大体上有种类型的属性,一种为layout_开头的属性,一种为不是以layout_开头的属性,下面以TextView为例进行说明,如下所示

  

 <RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello_world" /> </RelativeLayout>

  我为TextView设置了三个属性layout_width、layout_height以及text,可以看到这三个属性中layout_width、layout_height属性为layout_开头而text没有以Layout_开头。

  以layout_开头的属性为从容器中继承的属性,在这个例子里面即是从RelativeLayout中继承来的,TextView本身并没有此属性。而text则是TextView自身拥有的属性。

  为了说明layout属性为容器属性,我做了下面的例子,把TextView分别放置到RelativeLayout和LinearLayout中,然后对TextView设置layout_centerInParent属性,之所有选择这个属性,是因为这个属性为RelativeLayout所有而LinearLayout没有,实验代码如下

  

 <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="hello_world" />
</RelativeLayout> <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="hello world2" />
</LinearLayout>

  如上进行设置之后会发现,编辑器提示“Invalid layout param in a LinearLayout: layout_centerInParent”,如下所示

  aaarticlea/png;base64,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" alt="" />

  通过此实验可以得出结论,layout开头的属性并非TextView所拥有,而是继承的容器中关于布局的属性,继而推而广之,可以得出结论,控件的属性可以分为自身属性和容器中的布局属性。下面就通过TextView和各个布局容器一起来详细分析下属性。

LinearLayout和TextView

  这一小节主要介绍下LinearLayout和TextView的属性,先来看下TextView的属性,及属性继承关系,

  下面为TextView自身所拥有的属性

XML Attributes
Attribute Name
android:autoLink
android:autoText
android:bufferType
android:capitalize
android:cursorVisible
android:digits
android:drawableBottom
android:drawableEnd
android:drawableLeft
android:drawablePadding
android:drawableRight
android:drawableStart
android:drawableTop
android:editable
android:editorExtras
android:ellipsize
android:ems
android:fontFamily
android:freezesText
android:gravity
android:height
android:hint
android:imeActionId
android:imeActionLabel
android:imeOptions
android:includeFontPadding
android:inputMethod
android:inputType
android:lineSpacingExtra
android:lineSpacingMultiplier
android:lines
android:linksClickable
android:marqueeRepeatLimit
android:maxEms
android:maxHeight
android:maxLength
android:maxLines
android:maxWidth
android:minEms
android:minHeight
android:minLines
android:minWidth
android:numeric
android:password
android:phoneNumber
android:privateImeOptions
android:scrollHorizontally
android:selectAllOnFocus
android:shadowColor
android:shadowDx
android:shadowDy
android:shadowRadius
android:singleLine
android:text
android:textAllCaps
android:textAppearance
android:textColor
android:textColorHighlight
android:textColorHint
android:textColorLink
android:textIsSelectable
android:textScaleX
android:textSize
android:textStyle
android:typeface
android:width

  
  TextView继承属性

  

Inherited XML Attributes

From class android.view.View

Attribute Name
android:accessibilityLiveRegion
android:alpha
android:background
android:clickable
android:contentDescription
android:drawingCacheQuality
android:duplicateParentState
android:fadeScrollbars
android:fadingEdgeLength
android:filterTouchesWhenObscured
android:fitsSystemWindows
android:focusable
android:focusableInTouchMode
android:hapticFeedbackEnabled
android:id
android:importantForAccessibility
android:isScrollContainer
android:keepScreenOn
android:layerType
android:layoutDirection
android:longClickable
android:minHeight
android:minWidth
android:nextFocusDown
android:nextFocusForward
android:nextFocusLeft
android:nextFocusRight
android:nextFocusUp
android:onClick
android:padding
android:paddingBottom
android:paddingEnd
android:paddingLeft
android:paddingRight
android:paddingStart
android:paddingTop
android:requiresFadingEdge
android:rotation
android:rotationX
android:rotationY
android:saveEnabled
android:scaleX
android:scaleY
android:scrollX
android:scrollY
android:scrollbarAlwaysDrawHorizontalTrack
android:scrollbarAlwaysDrawVerticalTrack
android:scrollbarDefaultDelayBeforeFade
android:scrollbarFadeDuration
android:scrollbarSize
android:scrollbarStyle
android:scrollbarThumbHorizontal
android:scrollbarThumbVertical
android:scrollbarTrackHorizontal
android:scrollbarTrackVertical
android:scrollbars
android:soundEffectsEnabled
android:tag
android:textAlignment
android:textDirection
android:transformPivotX
android:transformPivotY
android:translationX
android:translationY
android:visibility

  也就是说这两部分加起来就是TextView的全部属性,然而我们在XML编辑器中编辑代码的时候会发现,除了以上属性外还有很多以layout开头的属性可以设置,这些就是容器的属性,下面以LinearLayout为例,实验场景如下

  

 <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello world2" />
</LinearLayout>

  下面我们就看下LinearLayout的布局属性,通过LinearLayout.LayoutParams类来体现

  通过帮助文档可以看到,其自身属性为以下内容

  

XML Attributes
Attribute Name
android:layout_gravity
android:layout_weight

  还有继承了两类属性,android.view.ViewGroup.MarginLayoutParams

  

Attribute Name
android:layout_marginBottom
android:layout_marginEnd
android:layout_marginLeft
android:layout_marginRight
android:layout_marginStart
android:layout_marginTop

  和android.view.ViewGroup.LayoutParams

Attribute Name Related Method Description
android:layout_height   Specifies the basic height of the view. 
android:layout_width   Specifies the basic width of the view. 

  以上所有属性就是布局控件提供的布局属性

  所以,TextView可以设置的属性即为自身属性和以上的布局属性。

后记

  以上我们通过LinearLayout和TextView的组合分析了Android中布局的属性使用情况,通过以上的分析使得我们能够了解到控件属性的由来,这样就可以更加随心所欲的进行界面布局了。

  同样的道理,可以去分析RelativeLayout、TableLayout等等。

  

  原文地址:http://www.cnblogs.com/luoaz/p/3947100.html

  

Android布局揭秘的更多相关文章

  1. 【转】在Android布局中使用include和merge标签

    内容转自:http://fengweipeng1208.blog.163.com/blog/static/21277318020138229754135/ 在我们开发android布局时,经常会有很多 ...

  2. Android成长日记-Android布局优化

    Android常用布局 1. LinearLayout(线性布局) 2. RelativeLayout(相对布局) 3. TableLayout(表格布局) 4. AbsoluteLayou(绝对布局 ...

  3. 【转】Android布局优化之ViewStub

    ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View.虽然Android开发人员基本上都听说过,但是真正用的可能不多. ViewStub可以理解成一个非常轻量级的Vie ...

  4. Android 布局之LinearLayout

    Android 布局之LinearLayout 1 LinearLayout简介 LinearLayout是线程布局.它包括2个方向(android:orientation):“水平”(horizon ...

  5. Android 布局之RelativeLayout

    Android 布局之RelativeLayout 1 RelativeLayout简介 RelativeLayout是相对布局. RelativeLayout布局属性 1.1 与parent相对的属 ...

  6. Android 布局之TableLayout

    Android 布局之TableLayout 1 TableLayout简介 TableLayout是表格布局.TableLayout 可设置的属性包括全局属性及单元格属性. 1.1 全局属性 有以下 ...

  7. Android 布局之FrameLayout

    Android 布局之FrameLayout 1 FrameLayout简介 对于FrameLayout,官方介绍是:FrameLayout is designed to block out an a ...

  8. Android 布局之GridLayout

    Android 布局之GridLayout 1 GridLayout简介 GridLayout是Android4.0新提供的网格矩阵形式的布局控件. GridLayout的继承关系如下:java.la ...

  9. Xamarin Android布局文件没有智能提示

    Xamarin Android布局文件没有智能提示 在Visual Studio 2015中,Android项目的Main.axml文件没有智能提示,不便于布局文件的编写.解决办法:(1)从Xamar ...

随机推荐

  1. C. Ilya and Sticks

    C. Ilya and Sticks time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. solr 相似查询-MoreLikeThis

    参考文档: MoreLikeThis MoreLikeThisHandler 在solr中有两种方式实现MoreLikeThis:第一种:SearchHandler中的MoreLikeThisComp ...

  3. [Java] 两种发起POST请求方法,并接收返回的响应内容的处理方式

    1.利用apache提供的commons-httpclient-3.0.jar包 代码如下: /** * 利用HttpClient发起POST请求,并接收返回的响应内容 * * @param url ...

  4. MySQL(24):事务的隔离级别

    1. 事务的隔离级别引入: 数据库是多线程并发访问的,所以很容易出现多个线程同时开启事务的情况,这样的就会出现脏读.重复读以及幻读的情况.在数据库操作中,为了有效保证并发读取数据的正确性,需要为事务设 ...

  5. batchExportPNG.py不是我的代码

    #coding=gbk#@author lifc,20140806#批量制作输出专题图import arcpy,os,time,math #testpath=raw_input("testp ...

  6. struts1.3设置编码三种方法

    本文所写涉及的struts的版本是1.3x. 一.改写struts的ActionServlet. 重写process()方法: 配置相应的web.xml文件   三.通过Chain来处理: 使用cha ...

  7. DNS resolving 占用大量日志

    公司内部DNS配置好后,测试解析正常,只是几乎每秒都有无法解析的日志产生.但分析日志时发现,每天的日志都有2G左右.日志中几乎全是类似network unreachable resolving 'ww ...

  8. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

    mysql中如果字段使用了关键字,在插入和更新时会提示 You have an error in your SQL syntax; check the manual that corresponds ...

  9. javascript组件开发之基类继承实现

    上一篇文章大概的介绍了一下关于javascript组件的开发方式,这篇文章主要详细记一下基类的编写,这个基类主要是实现继承的功能 为什么要封装基类? 由于这次重构项目需要对各种组件进行封装,并且这些组 ...

  10. codeforces 680A A. Bear and Five Cards(水题)

    题目链接: A. Bear and Five Cards //#include <bits/stdc++.h> #include <vector> #include <i ...