0

过去,每当我创建自定义表格布局时,我都会在 java 中创建子视图,然后使用tableRow.addView(childView). 目前,我没有手动创建所有子视图,而是在 xml 中创建它们,然后将它们膨胀到 tableRow 中。

所以例如我做

RelativeLayout gameView = (RelativeLayout) mInflater.inflate(R.layout.my_game,
            new RelativeLayout(context));
…  //edits to gameView
gameView.requestLayout();
((ViewGroup) gameView.getParent()).removeAllViews();
tableRow.addView(gameView);
addView(tableRow);

然而,我的问题是:如果我省略了该行,((ViewGroup) gameView.getParent()).removeAllViews()那么我会收到一个错误,即视图已经有一个父级,我必须首先调用revomeView孩子的父级。找不到任何调用的方法removeView,我使用removeAllViews. 但是当我这样做时,我在父母身上得到一个 NullPointerException 。

所以问题是:我如何膨胀视图然后将其添加到表格布局中?

4

1 回答 1

1

尝试更改此行

RelativeLayout gameView = (RelativeLayout) mInflater.inflate(R.layout.my_game,
        new RelativeLayout(context));

RelativeLayout gameView = (RelativeLayout) mInflater.inflate(R.layout.my_game,
        null);
于 2013-07-26T23:30:08.087 回答