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


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

基于您的代码工作的知识。

更改垂直线性布局的框架布局,即它将子项布局在彼此下方。

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);

FrameLayout Documentation 指出:

。子视图在堆栈中绘制,最近添加的子视图位于顶部。框架布局的大小是其最大子项(加上填充(的大小...

所以你不能(至少很容易(做你想做的事。但是,作为根的线性布局将自动执行此操作,因此我建议考虑使用一个...

希望这有帮助...

最新更新