如何以编程方式在FrameLayout中的另一个LinearLayout下添加LinearLayout?

时间:2013-07-12 22:25:54

标签: android android-linearlayout android-framelayout

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

FrameLayout Documentation声明:

  

...子视图以堆栈形式绘制,最近添加的子项位于顶部。 FrameLayout的大小是其最大子项的大小(加上填充)......

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

希望这会有所帮助......