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
答案 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的大小是其最大子项的大小(加上填充)......
所以你不能(至少很容易)做你想做的事。但是,作为root的LinearLayout会自动执行此操作,因此我建议您考虑使用一个...
希望这会有所帮助......