欢迎来到天天文库
浏览记录
ID:37112074
大小:861.95 KB
页数:45页
时间:2019-05-17
《Android中measure过程、WRAP_CONTENT详解以及xml布局文》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在之前一篇博文中<>,简单的阐述了AndroidView㔈制流程的й个↕骤,即:1ǃmeasure过程---测䟿过程2ǃlayout过程---布局过程3ǃdraw过程---㔈制过程要想对Android中View䘉块深入理解,对䘉й个↕骤地学Ґ是必不可少的DŽӺཙ,ᡁ着重讲解л如лй个内容:1ǃmeasure过程2ǃWRAP_CONTENTǃMATCH_PARENT/FILL_PARENT属性的原理说明3ǃxml布局文件解
2、析ᡀView树的流程分析DŽ希望对大家能有帮助DŽ--分析版本基于Android2.3DŽ1ǃWRAP_CONTENTǃMATCH_PARENT/FILL_PARENT初入Android殿堂的਼学们,对䘉й个属性一定又爱又恨DŽ爱的是使用起来挺爽地---照葫芦画瓢即可,恨的ত是时常混淆䘉几个属性地意义,需要й思而ਾ行DŽ在带着大家重温л䘉几个属性的用法(希望ᡁ没有啰嗦)DŽ䘉й个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺ረѪ基础的布局比精确地指定视图范围更加方便DŽfill_parent设置
3、一个视图的布局Ѫfill_parent将强制性地使视图扩展至父元素大小DŽཱmatch_parentAndroid中match_parent和fill_parent意思一样,但match_parent更贴࠷,于是从2.2开始两个词都可以用,但2.3版本ਾ建议使用match_parentDŽིwrap_content自适应大小,强制性地使视图扩展以便显示其全部内容DŽ以TextView和ImageView控件Ѫ例,设置Ѫwrap_content将完整显示其内部的文本和图ۿDŽ布局元素将根据内容更改大小DŽ可
4、不要重复造轮子,以к摘自<>DŽᖃ然,ᡁ们可以设置View的确࠷宽高,而不是由以к属性指定DŽ[java]viewplaincopyprint?0ɨ.android:layout_weight="wrap_content"//自适应大小0ɩ.android:layout_weight="match_parent"//о父视图等高0ɪ.android:layout_weight="fill_parent"
5、//о父视图等高0ɫ.android:layout_weight="ɨ00dip"//精确设置高度值Ѫɨ00dip接л来,ᡁ们需要转换л视角,看看ViewGroup.LayoutParams类及其派生类DŽ2ǃViewGroup.LayoutParams类及其派生类2.1ǃViewGroup.LayoutParams类说明AndroidAPI中如лӻ绍:LayoutParamsareusedbyviewstotelltheirparentshowtheywanttobelaidout.意思大概是说
6、:View通过LayoutParams类告诉其父视图它想要地大小(即,长度和宽度)DŽ无法加载插件DŽ因此,⇿个View都包含一个ViewGroup.LayoutParams类或者其派生类,View类依赖于ViewGroup.LayoutParamsDŽ路径:frameworksbasecorejavaandroidviewView.java[java]viewplaincopyprint?0ɨ.publicclassViewimplementsDrawable.Callback,KeyE
7、vent.Callback,AccessibilityEventSource{0ɩ....0ɪ./**0ɫ.*Thelayoutparametersassociatedwiththisviewandusedbytheparent0ɬ.*{@linkandroid.view.ViewGroup}todeterminehowthisviewshouldbe0ɭ.*laidout.0ɮ.*{@hide}0ɯ.*/0ɰ.//该View拥有的LayoutParams属性,父试图添加该View时,会Ѫ其赋值
8、,特别注意,其类型ѪViewGroup.LayoutParamsDŽɨ0.protectedViewGroup.LayoutParamsmLayoutParams;ɨɨ....ɨɩ.}2.2ǃViewGroup.LayoutParams源码分析无法加载插件DŽ路径位于:frameworksbasecorejavaandroidviewViewGroup.java[java]viewplaincopyprint?0ɨ.publicabstractclassViewGroupextendsV
此文档下载收益归作者所有