Android Inflater addview導致載入子佈局match_parent無效
阿新 • • 發佈:2019-01-06
案例分析
父控制元件InfobarLayout:
子控制元件InfobarView:
載入InfobarView:
實際效果:
有麼有發現,並沒有達到預期的width為match_parent而有種wrap_content感覺。
為啥尼?帶著疑問翻開度娘。
程式碼邏輯走到3720行:
LayoutParams params = child.getLayoutParams();
params是空的。
走到邏輯3722行:
params = generateDefaultLayoutParams();
protected LayoutParams generateDefaultLayoutParams() {
return new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
}
造成子控制元件顯示效果為wrap_content效果。
又度娘了下Inflater
回到載入InfobarView:
View view = inflater.inflate(R.layout.cable_infobarview, null);
Android studio有個不友好的提示:
Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout' s root element)