今天把对于布局的一些理解写下来,主要内容包括控件的属性的继承关系,控件与容器的属性的关系,以及各种类的属性的使用。
通常意义上讲,我们在对一个控件进行属性赋值的时候大体上有种类型的属性,一种为layout_开头的属性,一种为不是以layout_开头的属性,下面以TextView为例进行说明,如下所示
1 <RelativeLayout 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" > 4 5 <TextView 6 android:layout_width="wrap_content" 7 android:layout_height="wrap_content" 8 android:text="hello_world" /> 9 10 </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没有,实验代码如下
1 <RelativeLayout 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" > 4 5 <TextView 6 android:layout_width="wrap_content" 7 android:layout_height="wrap_content" 8 android:layout_centerInParent="true" 9 android:text="hello_world" /> 10 </RelativeLayout> 11 12 <LinearLayout 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" > 15 16 <TextView 17 android:layout_width="wrap_content" 18 android:layout_height="wrap_content" 19 android:layout_centerInParent="true" 20 android:text="hello world2" /> 21 </LinearLayout>
如上进行设置之后会发现,编辑器提示“Invalid layout param in a LinearLayout: layout_centerInParent”,如下所示
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" alt="" />
通过此实验可以得出结论,layout开头的属性并非TextView所拥有,而是继承的容器中关于布局的属性,继而推而广之,可以得出结论,控件的属性可以分为自身属性和容器中的布局属性。下面就通过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
class="jd-expando-trigger-img" src="file:///D:/Android/android-sdk/docs/assets/images/triangle-opened.png" alt="" />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为例,实验场景如下
1 <LinearLayout 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" > 4 5 <TextView 6 android:layout_width="wrap_content" 7 android:layout_height="wrap_content" 9 android:text="hello world2" /> 10 </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