如何使用代码动态添加包含不同对象的布局。
例如,我做了一个完美的"预制"布局,其中包含我需要的一切(其他布局,文本视图,按钮等)。
我希望能够在代码中重新创建这个完全相同的布局,所以当我运行应用程序时,它会创建大量的这些。
有什么想法吗?
答案 0 :(得分:0)
对于静态布局,XML是首选。但是,您可以在Java(或Kotlin)代码中动态地在代码中创建任何布局。由于您没有要求创建特定的布局,因此我将为您提供一个示例代码,您可以在其中查看如何在不使用XML文件的情况下使用Java创建布局:
第1步 - 为所有视图和ViewGroup创建Java对象
LinearLayout ll = new LinearLayout(Context object);
// Context对象只是一种在Android OS中访问系统资源和服务的方式(我们将使用'this')另外Context是Activity的超类
TextView tv = new TextView(Context object);
Button b = new Button(Context object);
第2步 - 定义所有视图和视图组的维度。使用LinearLayout.LayoutParams对象
指定每个子项的布局信息LinearLayout.LayoutParams dimensions = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
ll.setLayoutParams(dimensions);
LinearLayout.LayoutParams dimensions2 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
tv.setLayoutParams(dimensions2);
b.setLayoutParams(dimensions2);
第3步 - 设置Views和ViewGroups的其他属性,如颜色,大小,重力等。
ll.setOrientation(LinearLayout.VERTICAL);
tv.setText("some text");
b.setText("Button");
步骤4 - 按相应的顺序将所有视图添加到根ViewGroup
ll.addView(tv);
ll.addView(b);
步骤5 - 将内容视图设置为根布局。 (通过在活动的onCreate()方法中调用setContentView()方法)
setContentView(ll);