我有一个java应用程序,可以动态地将视图添加到容器面板中,如下所示。
void addBoard(int ID) {
BoardPanel p = new BoardPanel(myManager,ID);
setAutoLayout();
containerPanel.add(p);
containerPanel.repaint();
}
当我尝试将其转换为Android应用程序时,它会在调用addView时挂起。问题是什么?请注意,如果用户愿意,用户可以添加1000个视图(BoardPanels),因此我无法使用XML布局。
void addBoard(int ID) {
BoardPanel p = new BoardPanel(context,myManager,ID);
Log.i("Info", "Going to add view");
containerPanel.addView(p);
Log.i("Info", "Added");
containerPanel.postInvalidate();
}
由于
更新:问题似乎是由于Aegonis指出的线程代码。
答案 0 :(得分:1)
尝试ViewGroup.addView()(FrameLayout,GridLayout,LinearLayout,...都是ViewGroup的扩展)。
例如,如果要在第一个已存在的视图之后插入视图:
LinearLayout layout = (LinearLayout) findViewById(R.id.layoutID);
layout.addView(viewToBeAdded, 1);