有没有办法将基于xml的布局和“手动”布局结合起来?F.ex.:
我使用“标准”xml布局,如下所示:

 setContentView(R.layout.mainscreen);

然后我想有一些更动态的内容,添加如下:
 LinearLayout layout = new LinearLayout(this);
 setContentView(layout);
 layout.addView(new CreateItemButton(this, "Button", 1));

当然,我意识到我不能像上面这一行那样创建一个新的布局,但是我可能需要以某种方式初始化xml布局。但是-如果我想动态添加组件,是可能的,还是我只需要100%手动布局?或者还有其他更优雅/更正确的方法吗?
(我要做的是基于从数据库中获取的条目创建按钮。它们在数量和文本/内容上都会很谨慎,因此尝试动态添加它们,而不是在xml布局文件中添加它们。

最佳答案

可以将任何元素动态添加到XML布局中。
在XML布局中必须有一个容器,用于添加动态元素。用id=“container”表示空的linearlayout。此外,还可以动态构建所有内容并设置contentview(yourview);其中yourview是添加了其他子元素的根布局元素。
前任:

Button myButton = new Button(this);
myButton.setLayoutParams(params);
LinearLayout container = (LinearLayout)findViewById(R.id.container);
container.addView(myButton);


LinearLayout myLayout = new LinearLayout(this);
...
container.addView(myLayout);

07-24 09:49
查看更多