过去,每当我创建自定义表格布局时,我都会在 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 。
所以问题是:我如何膨胀视图然后将其添加到表格布局中?