0

В прошлом, когда я создаю собственный макет таблицы, я создаю представления детей в java, а затем добавляю их в таблицу, используя tableRow.addView(childView). В настоящее время, вместо того, чтобы создавать все мои детские взгляды вручную, я создал их в xml, а затем раздул их в tableRow.Как добавить завышенный вид в пользовательский tableLayout

Так, например, я

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

Попробуйте изменить эту строку

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

в

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

Я уже сделал это. Ничего. –

Смежные вопросы