在调用setContentView(View)函数之前,如何从代码中自定义layout.xml?

时间:2013-08-02 15:20:31

标签: android layout view customization

我想从代码中自定义我的布局定义(在my_layout.xml文件中声明)。

不幸的是,我可以使用findViewById()函数查找特定视图(在my_layout.xml文件中定义),并在我调用setContentView(R.layout.my_layout)后才能从代码中自定义它们。

但是如果我想在调用setContentView()之前首先自定义我的布局呢?如何在致电setContentView()之前访问特定视图?

4 个答案:

答案 0 :(得分:0)

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout myLayout = (RelativeLayout)inflater.inflate(R.layout.my_layout, null); 

现在,您可以使用R.layout.my_layout中定义的视图/资源并添加到自定义布局中。

答案 1 :(得分:0)

使用LayoutInflater是解决方案:

LayoutInflater li=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    LinearLayout v= (LinearLayout)li.inflate(R.layout.activity_main, null);
    Button b=v.findViewById(R.id.button);
    setContentView(v);

答案 2 :(得分:0)

LayoutInflater myInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout layout = (RelativeLayout)myInflater.inflate(R.layout.first_layout, null); 
setContentView(layout);

答案 3 :(得分:0)

onCreateView就是出于这个目的。只需在您的活动或片段中覆盖它,就可以在那里自定义您的视图。