FrameLayout layout_weight以编程方式

pro*_*ock 5 android android-layout

我正在尝试以FrameLayout编程方式创建如下(此视图将浮动在a的底部中心LinearLayout):

    FrameLayout bottomFrameLayout = new FrameLayout(context);
    bottomFrameLayout.setLayoutParams(new FrameLayout.LayoutParams(0,LayoutParams.FILL_PARENT,Gravity.CENTER | Gravity.BOTTOM));
Run Code Online (Sandbox Code Playgroud)

自从我设置以来layout_width=0dp,我也想设置layout_weight控制宽度.我怎样才能做到这一点?

Nik*_*ski 17

您需要使用LinearLayout.LayoutParams (int width, int height, float weight)的构造函数,因为FrameLayout是孩子LinearLayout,因此您在设置PARAMS儿童LinearLayout.

编辑:

 FrameLayout bottomFrameLayout = new FrameLayout(context);
 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT,mWeight);
 lp.gravity = Gravity.CENTER | Gravity.BOTTOM;
 bottomFrameLayout.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

  • @NikolaDespotoski FrameLayout不是LinearLayout的子项,根据参考http://developer.android.com/reference/android/widget/FrameLayout.html和FrameLayout.LayoutParams不是LinearLayout.LayoutParams的子项,请参阅http: //developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html.你的答案是否过时了? (4认同)
  • @soriak我相信在这种情况下,孩子并不意味着"从类继承",而是"是有问题的具体LinearLayout对象的孩子" (2认同)