如何将膨胀的视图添加到自定义tableLayout中

时间:2013-07-26 23:18:33

标签: android android-layout layout-inflater android-tablelayout

过去,每当我创建自定义表格布局时,我都会在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。

所以问题是:如何给视图充气然后将其添加到表格布局?

1 个答案:

答案 0 :(得分:1)

尝试更改此行

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

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