XML 中子布局设置宽高自适应

android:layout_width="wrap_content"
android:layout_height="wrap_content"


代码中父布局使用LayoutParams设置布局宽高自适应
LayoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

按照这样的思路的话,出来的画面宽高应该也是根据最终的子控件宽高动态变化

但是问题是父布局中设置宽高LayoutParams.WRAP_CONTENT但是算出来的宽高总是满屏ViewGroup.LayoutParams.MATCH_PARENT

 

经过一些排查和测试,最后发现问题在于设置了背景颜色

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@color/white"

当设置了背景颜色以后,父布局measure()方法算出来的宽度和高度就变成了全屏的宽高,既然是自适应宽高,那背景色就在各个控件上设置就好了

更多推荐

Android 父布局中设置宽高LayoutParams.WRAP_CONTENT但是算出来的宽高总是满屏