我在xml里面设置控件的android:layout_weight="1",然后界面把多余的空间分配给控件。我想在java语言中实现同样的效果,不知道该如何设计?我查了一下LinearLayout的setWeightSum函数,参数设置为1,但是效果没有出来,不知道怎么回事?

解决方案 »

  1.   

    “我在xml里面设置控件的android:layout_weight="1",然后界面把多余的空间分配给控件”什么意思 , 没听太懂?
      

  2.   

    在xml中,LinearLayout里面每个控件设置属性android:layout_weight="1",这样在界面显示时,把每个控件均匀分布在LinearLayout中。我主要想在java代码中实现同样的效果,看到LinearLayout类有一函数setWeightSum。不知道该函数如何使用?
      

  3.   

    setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
    LayoutParams.WRAP_CONTENT, 1));
    1就是weight
      

  4.   

    当View的width,height为wrap_content或者0dp/px/sp时,若设定了weight,那么layout就会从剩余的未确定的layout中,根据weight的总和,也就是weightSum来计算需要为这样的View设置多少长宽。width = leftWidth * weight / weightSum;
    height = leftHeight * weight / weightSum;另外weight的计算和布局,在linearLayout中Onlayout和OnMeasure函数。
      

  5.   

    乱说LayoutParams构造方法中没有三个参数的
      

  6.   

    如果想在在Linearlayout布局中动态变更weight值,需要设定Layoutparams的第3个参数,5楼nevercool 的答案是正确的,但是import package时要注意:
    import android.widget.LinearLayout.LayoutParams;