如题所述
ããå¨Androidå¼åä¸ï¼æ们常ç¨çå¸å±æ¹å¼ä¸»è¦æLinearLayoutãRelativeLayoutãFrameLayoutçï¼éè¿è¿äºå¸å±æ们å¯ä»¥å®ç°åç§åæ ·ççé¢ãä¸æ¤åæ¶ï¼å¦ä½æ£ç¡®ãé«æç使ç¨è¿äºå¸å±æ¹å¼æ¥ç»ç»UIæ§ä»¶ï¼æ¯æ们æ建ä¼ç§Android Appç主è¦åæä¹ä¸ãæ¬ç¯å
容就主è¦å´ç»Androidå¸å±ä¼åæ¥è®¨è®ºå¨æ¥å¸¸å¼åä¸æ们使ç¨å¸¸ç¨å¸å±éè¦æ³¨æçä¸äºæ¹é¢ï¼åæ¶ä»ç»ä¸æ¬¾SDKèªå¸¦çUIæ§è½æ£æµå·¥å
·HierarchyViewerã
ããå¸å±ååéè¿ä¸äºæ¯ç¨ãææçå¸å±ååï¼æ们å¯ä»¥å¶ä½åºå è½½æçé«å¹¶ä¸å¤ç¨æ§é«çUIãç®åæ¥è¯´ï¼å¨Android UIå¸å±è¿ç¨ä¸ï¼éè¦éµå®çååå æ¬å¦ä¸å ç¹ï¼
ãã•å°½éå¤ä½¿ç¨RelativeLayoutï¼ä¸è¦ä½¿ç¨ç»å¯¹å¸å±AbsoluteLayoutï¼
ãã•å°å¯å¤ç¨çç»ä»¶æ½ååºæ¥å¹¶éè¿< include />æ ç¾ä½¿ç¨ï¼
ãã•ä½¿ç¨< ViewStub />æ ç¾æ¥å è½½ä¸äºä¸å¸¸ç¨çå¸å±ï¼
ãã•ä½¿ç¨< merge />æ ç¾åå°å¸å±çåµå¥å±æ¬¡ï¼
ããç±äºAndroidçç¢çåç¨åº¦å¾é«ï¼å¸é¢ä¸åå¨çå±å¹å°ºå¯¸ä¹æ¯åå¼åæ ·ï¼ä½¿ç¨RelativeLayoutè½ä½¿æ们æ建çå¸å±éåºæ§æ´å¼ºï¼æ建åºæ¥çUIå¸å±å¯¹å¤å±å¹çéé ææè¶å¥½ï¼éè¿æå®UIæ§ä»¶é´çç¸å¯¹ä½ç½®ï¼ä½¿å¨ä¸åå±å¹ä¸å¸å±ç表ç°è½åºæ¬ä¿æä¸è´ãå½ç¶ï¼ä¹ä¸æ¯æææ åµä¸é½å¾ä½¿ç¨ç¸å¯¹å¸å±ï¼æ ¹æ®å ·ä½æ åµæ¥éæ©åå ¶ä»å¸å±æ¹å¼çæé æ¥å®ç°æä¼å¸å±ã
ããå¸å±ååéè¿ä¸äºæ¯ç¨ãææçå¸å±ååï¼æ们å¯ä»¥å¶ä½åºå è½½æçé«å¹¶ä¸å¤ç¨æ§é«çUIãç®åæ¥è¯´ï¼å¨Android UIå¸å±è¿ç¨ä¸ï¼éè¦éµå®çååå æ¬å¦ä¸å ç¹ï¼
ãã•å°½éå¤ä½¿ç¨RelativeLayoutï¼ä¸è¦ä½¿ç¨ç»å¯¹å¸å±AbsoluteLayoutï¼
ãã•å°å¯å¤ç¨çç»ä»¶æ½ååºæ¥å¹¶éè¿< include />æ ç¾ä½¿ç¨ï¼
ãã•ä½¿ç¨< ViewStub />æ ç¾æ¥å è½½ä¸äºä¸å¸¸ç¨çå¸å±ï¼
ãã•ä½¿ç¨< merge />æ ç¾åå°å¸å±çåµå¥å±æ¬¡ï¼
ããç±äºAndroidçç¢çåç¨åº¦å¾é«ï¼å¸é¢ä¸åå¨çå±å¹å°ºå¯¸ä¹æ¯åå¼åæ ·ï¼ä½¿ç¨RelativeLayoutè½ä½¿æ们æ建çå¸å±éåºæ§æ´å¼ºï¼æ建åºæ¥çUIå¸å±å¯¹å¤å±å¹çéé ææè¶å¥½ï¼éè¿æå®UIæ§ä»¶é´çç¸å¯¹ä½ç½®ï¼ä½¿å¨ä¸åå±å¹ä¸å¸å±ç表ç°è½åºæ¬ä¿æä¸è´ãå½ç¶ï¼ä¹ä¸æ¯æææ åµä¸é½å¾ä½¿ç¨ç¸å¯¹å¸å±ï¼æ ¹æ®å ·ä½æ åµæ¥éæ©åå ¶ä»å¸å±æ¹å¼çæé æ¥å®ç°æä¼å¸å±ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-12-08
下面介绍几种切实有效的方式:
merge
顾名思义,就是合并、融合的意思。使用它可以有效的将某些符合条件的多余的层级优化掉。使用merge的场合主要有两处:
(1) 自定义View中使用,父元素尽量是FrameLayout,当然如果父元素是其他布局,而且不是太复杂的情况下也是可以使用的
(2) Activity中的整体布局,根元素需要是FrameLayout
ViewStub
(1) ViewStub只能Inflate一次,之后ViewStub对象会被置为空。按句话说,某个被ViewStub指定的布局被Inflate后,就不能够再通过ViewStub来控制它了。所以它不适用 于需要按需显示隐藏的情况。
(2) ViewStub只能用来Inflate一个布局文件,而不是某个具体的View,当然也可以把View写在某个布局文件中。如果想操作一个具体的view,还是使用visibility属性吧。
(3) VIewStub中不能嵌套merge标签。(前面好像说过)
不过这些确定都无伤大雅,我们还是能够用ViewStub来做很多事情。
include
制造这个标签纯碎是为了布局重用,在项目中通常会存在一些布局公用的部分,比如自义标题,我们不需要把一份代码Ctrl C, Ctrl V的到处都是,严重违背程序简洁化、模块儿化的设计思想