android - 如何以编程方式将 View 添加到 View

标签 android

假设我有一个 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/

相关文章:

android - 构建 gradle 需要很长时间(8 分钟到 20 分钟)

java - 如何在一处显示所有错误? "x error found"的导航窗口?

java - 如何在 ListActivity 中将返回按钮赋予工具栏

java - Android - 控制用户想要安装的应用程序

java - Android 工具栏无法正常工作

javascript - 从网页自动安装apk文件

android - PanoramaGL 查看器位图的 URL

java - 我应该在 Android 中使用什么类型的数据存储?

android - Android 后台位置跟踪

java - 循环帮助!向 map API v2 添加多个标记