如果ViewGroup的宽度在xml中是’match_parent’/’fill_parent’,那么Button的set-setWidth()不起作用?

前端之家收集整理的这篇文章主要介绍了如果ViewGroup的宽度在xml中是’match_parent’/’fill_parent’,那么Button的set-setWidth()不起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在activity_main.xml中将LinearLayout定义为根元素.

情况1:从onCreate()我尝试在这个垂直LinearLayout中添加Button,让我困惑的是,根据Google的API,我尝试在按钮上调用setWidth(20)然后在ViewGroup中添加它,但Button占用宽度’match_parent’而不是20dp.

    

Case 1

情况2:在将LinearLayout的layout_width设置为’wrap_content’并调用setWidth(20)时,它现在被认为是给定的显式宽度值,即20dp.

enter image description here

情况3:最后,删除我对setWidth(20)的自定义调用,Button获取宽度为’wrap_content’.

enter image description here

问:所以在案例2中很清楚,如果我希望明确使用setWidth()方法,则不需要使用LayoutParams.然后在案例4中:即LinearLayout的宽度设置为’match_parent’而button.setWidth(20)是也被称为.
但是为什么Button仍没有明确给定宽度值,再次输出与CASE 1完全相同.

提前致谢.

最佳答案
您需要为按钮视图定义适当的LayoutParams.然后将其添加到firstLayout.

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params.height = XX;
params.width = XX;
button.setLayoutParams(params);

猜你在找的Android相关文章