1
FrameLayout frameLayout = new FrameLayout(this);
LinearLayout linearLayout1= new LinearLayout(this);
LinearLayout linearLayout2= new LinearLayout(this);

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

params.gravity = Gravity.CENTER_VERTICAL;

frameLayout.addView(linearLayout1, params);

如何在linearLayout1下添加linearLayout2

4

2 回答 2

14

基于您的代码有效的知识。

将 FrameLayout 更改为垂直线性布局,即,它将子级布局在彼此下方。

LinearLayout parentLayout = new LinearLayout(this);
LinearLayout linearLayout1= new LinearLayout(this);
LinearLayout linearLayout2= new LinearLayout(this);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

params.gravity = Gravity.CENTER_VERTICAL;

parentLayout.setOrientation(VERTICAL);
parentLayout.addView(linearLayout1, params);
parentLayout.addView(linearLayout2, params);
于 2013-07-12T22:32:23.097 回答
1

FrameLayout 文档指出:

...子视图绘制在堆栈中,最近添加的子视图在顶部。FrameLayout 的大小是它最大的孩子的大小(加上填充)......

所以你不能(至少很容易)做你想做的事。但是,作为根的 LinearLayout 会自动执行此操作,因此我建议考虑使用...

希望这可以帮助...

于 2013-07-12T22:33:02.777 回答