假设我有一个 LinearLayout
,我想在我的程序中通过 Java 代码向其中添加一个 View 。为此使用什么方法?我不是在问它是如何在 XML 中完成的(我确实知道这一点),而是问我如何按照此示例代码做一些事情?
(One View).add(Another View)
就像在 Swing 中可以做的那样。
最佳答案
调用 addView
是正确的答案,但您需要做更多的事情才能使其正常工作。
如果您通过构造函数创建 View (例如,Button myButton = new Button();
),则需要在新构造的 View 上调用 setLayoutParams
,传入父 View 的 LayoutParams 内部类的实例,然后再将新构造的 subview 添加到父 View 。
例如,假设您的 LinearLayout 具有 ID R.id.main
,您的 onCreate()
函数中可能包含以下代码:
LinearLayout myLayout = findViewById(R.id.main);
Button myButton = new Button(this);
myButton.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
myLayout.addView(myButton);
确保设置 LayoutParams 很重要。每个 View 至少需要一个layout_width和一个layout_height参数。获得正确的内部类也很重要。我一直在努力将 View 添加到 TableRow 中以正确显示,直到我发现我没有将 TableRow.LayoutParams 的实例传递给 subview 的 setLayoutParams。
关于android - 如何以编程方式将 View 添加到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55029817/