Android:如何通过编程在 LinearLayout 前添加视图?

3
我在应用程序中创建了一个包含以下内容的布局:
main_layoutFrameLayout,填满整个屏幕)
-> 包括:main_interfaceLinearLayout,高度/宽度填满父级)
现在我想在 main_interface 之前在 main_layout 中添加另一个 LinearLayout。 我尝试过这样:
LinearLayout bar = new LinearLayout(this);
        bar.setGravity(Gravity.TOP);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        bar.setLayoutParams(params);
        main_layout.addView(bar);

但这样会重叠我的main_interface,你能帮忙吗?
1个回答

12

如果你想在一个 ViewGroup 的特定位置添加一个 View,可以使用 addView(view, position) 方法。在这种情况下,假设 main_interface 是第一个 View,你可以调用 main_layout.addView(bar, 0)

但是,你需要先修复你的布局。如果你将 main_layout 设置为 FrameLayout 并将 main_interface 的高度和宽度设置为 match_parent,它们肯定会重叠。如果你想要垂直堆叠的 View,请将你的 main_layout 设置为具有 android:orientation="vertical"LinearLayout

如果你能发布你实际的 XML 布局,我可以帮助你修改和测试它。


谢谢,你在每一个点上都是正确的!我将布局改为LinearLayout,并将addView()的索引设置为零。谢谢! - Tobias Baumeister

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接