我正在尝试以编程方式创建FrameLayout
,如下所示(此视图将浮动在LinearLayout
的底部中心):
FrameLayout bottomFrameLayout = new FrameLayout(context);
bottomFrameLayout.setLayoutParams(new FrameLayout.LayoutParams(0,LayoutParams.FILL_PARENT,Gravity.CENTER | Gravity.BOTTOM));
由于我设置layout_width=0dp
,我还想设置layout_weight
来控制宽度。我怎样才能做到这一点?
答案 0 :(得分:17)
您需要使用LinearLayout.LayoutParams (int width, int height, float weight)
构造函数,因为FrameLayout
是LinearLayout
的孩子,因此您要为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);