从资源插入布局还是在代码中创建?

时间:2013-10-19 12:47:18

标签: java android layout layout-inflater

我想将现有滚动LinearLayout(*1)另一个Layouts(*2)放入其中。我有点困惑哪条路走了。

First one:

要在xml Layout(*2)中定义并将其从资源加载到应用程序,请设置其子元素(文本/编辑/图标视图)值(unique_id / text),然后将其放在滚动的Layout(*1中) 。

Second one:

在代码中从头开始构建Layout(*2),然后将其插入LinearLayout(*1)

我知道一般规则是在xml中定义布局。但这是litle不同的方法。如果我们考虑删除这些元素。我的意思是,如果每个插入的布局都可以被程序看作一个单独的对象吗?

感谢您的澄清。

编辑: 当我按照第二种方式,很容易设置值和设置属性的问题,但它实际上是有效的。只是想知道第一种方式是否有意义。

2 个答案:

答案 0 :(得分:0)

要使用第一种方法,您必须使用inflate LayoutInflater布局资源,您可以在调用方法getLayoutInflater()的活动中获取它。然后你可以通过调用

添加你正在通过这种方式获得的View

yourView.addView(newView)

修改

两种方式都很好,你可以选择哪种方式。通常我会使用第一种方法,以使代码更清晰,不受属性设置的影响。

答案 1 :(得分:0)

尝试使用: -

setContentView(ll);

LinearLayout ll = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.common_layout)
TextView tv = new TextView(this);
tv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tv.setText("sample text");
ll.addView(tv);

这可能会有所帮助。