android 的activity中addContentView 和 setContentView 的区别
2013-12-20 18:22
549 查看
activity 中 addContentView 和 setContentView 的区别是什么?
首先看setContentView
逻辑在PhoneWindow 类中
如果多次调用setContentView ,则之后每次都会清空 mContentParent 容器。然后组装资源layoutResID。
addContentView
逻辑也在PhoneWindow 类中
如果多次调用addContentView ,则之后每次都会将view添加到mContentParent 容器中。最后产生view 的叠加效果。
结论:
调用 setContentView 。设置时会清空容器再添加 view。无view叠加效果
调用addContentView 。直接添加到view容器中,有view叠加效果。addView的字面意思“添加view”也很贴切。
首先看setContentView
逻辑在PhoneWindow 类中
@Override public void setContentView(int layoutResID) { if (mContentParent == null) { installDecor(); } else { mContentParent.removeAllViews(); } mLayoutInflater.inflate(layoutResID, mContentParent); final Callback cb = getCallback(); if (cb != null && !isDestroyed()) { cb.onContentChanged(); } }
如果多次调用setContentView ,则之后每次都会清空 mContentParent 容器。然后组装资源layoutResID。
addContentView
逻辑也在PhoneWindow 类中
@Override public void addContentView(View view, ViewGroup.LayoutParams params) { if (mContentParent == null) { installDecor(); } mContentParent.addView(view, params); final Callback cb = getCallback(); if (cb != null && !isDestroyed()) { cb.onContentChanged(); } }
如果多次调用addContentView ,则之后每次都会将view添加到mContentParent 容器中。最后产生view 的叠加效果。
结论:
调用 setContentView 。设置时会清空容器再添加 view。无view叠加效果
调用addContentView 。直接添加到view容器中,有view叠加效果。addView的字面意思“添加view”也很贴切。
相关文章推荐
- android 的activity中addContentView 和 setContentView 的区别
- Android中setContentView、addContentView、inflate、LayoutInflater和findViewById()区别
- 研究了下Activity里的setContentView 和addContentView的区别
- Android的Activity中setContentView到底经历了什么?
- inflate, findViewById与setContentView的区别与联系 分类: H1_ANDROID 2014-04-18 22:54 1119人阅读 评论(0) 收藏
- Android Activity之 setContentView()总结
- android setContentView() 、LayoutInflater的区别
- Android如何给无法更改继承关系的Activity更换ActionBar(setContentView方法实战)
- Android 从setContentView谈Activity界面的加载过程
- Android] setContentView和inflater区别以及findViewById和inflater的区别
- Android 从setContentView谈Activity界面的加载过程
- android Activity.setContentView和Window PhoneWindow类学习
- Android布局文件的载入过程分析:Activity.setContentView()源代码分析
- Android中一个Activity第二次启动时,onCreate()调用setContentView()方法时出错,程序崩溃
- android之setContentView,addContentView(),Window,WindowManager,Dialog源码剖析。
- addContentView和setContentView的区别
- android开发 Activity的里面调用两次 setContentView方法
- AppCompatActivity和Activity的setContentView方法的区别
- Android中setContentView与inflate的区别
- Android setContentView 实现同一个activity下不同view的切换