假设我有一个 LinearLayout
,我想在我的程序中从 Java 代码中添加一个 View 。使用什么方法?我不是在问它是如何在 XML 中完成的,我知道这一点,而是我如何才能按照这个示例代码的方式做一些事情?
(One View).add(Another View)
就像在 Swing 中可以做的那样。
最佳答案
调用 addView
是正确的答案,但您需要做更多的事情才能让它工作。
如果您通过构造函数创建 View (例如,Button myButton = new Button();
),则需要在新构建的 View 上调用 setLayoutParams
,在将新构造的 subview 添加到父 View 之前,传入父 View 的 LayoutParams 内部类的实例。
例如,假设您的 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 参数。获得正确的内部类(Class)也很重要。我一直在努力将 View 添加到 TableRow 以正确显示,直到我发现我没有将 TableRow.LayoutParams 的实例传递给 subview 的 setLayoutParams。
关于android - 如何以编程方式将 View 添加到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395769/