如何在视图上充气自定义视图

时间:2014-02-23 15:59:21

标签: android view layout-inflater android-inflate

我有一个自定义课程。哪个效果很好。

public class FocusGameView extends SurfaceView implements Runnable

在活动本身,我想把'FocusGameView'放在我已经在xml文件上创建的视图上。

所以我试着像这样使用'inflate':

public class FocusGame extends Activity {

    FocusGameView fgv;
    View v;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        fgv= new FocusGameView(this);

        v=(View) findViewById(R.id.frame_focus_game);

        LayoutInflater mInflater;
        mInflater = LayoutInflater.from(fgv.getContext());

        v = mInflater.inflate(R.layout.activity_focus_game, null);


        setContentView(R.layout.activity_focus_game);
}

此代码的结果是打开活动并设置布局。不将自定义视图放在视图本身上。

我真的希望你能帮助我。

提前致谢;

的Yaniv。

1 个答案:

答案 0 :(得分:1)

您只能将视图添加到视图组而不是视图,所以让我们将View v视为RelativeLayout:

公共类FocusGame扩展了Activity {

FocusGameView fgv;
RelativeLayout v;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_focus_game);

    v=(View)findViewById(R.id.frame_focus_game);

    fgv= new FocusGameView(this);
    v.addView(fgv); //You only need to add the view to a parent to make it appear
}