哈哈,终于找见这几个方法了
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) {
cb.onContentChanged();
}
}
@Override
public void setContentView(View view) {
setContentView(view, new ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT));
}
//看来这种情况下,都是填充父窗体的
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
if (mContentParent == null) {
installDecor();
} else {
mContentParent.removeAllViews();
}
mContentParent.addView(view, params);
final Callback cb = getCallback();
if (cb != null) {
cb.onContentChanged();
}
}
本文详细解析了Android中PhoneWindow类的setContentView方法实现原理及使用方式,包括如何设置布局资源ID、View及其LayoutParams来填充父窗口,并触发回调方法onContentChanged。
553

被折叠的 条评论
为什么被折叠?



