我尝试让ScrollView像ListView一样运行。 每一行都是动态添加的TextView。 所以我试试这段代码
this.scrollView = (ScrollView) findViewById(R.id.scrollView1);
this.linearLayout = (LinearLayout) findViewById(R.id.linearLayout2);
this.linearLayout.setOrientation(LinearLayout.VERTICAL);
TextView[] tx = new TextView[10];
for (int i = 0; i < 10; i++) {
tx[i] = new TextView(this);
tx[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tx[i].setText("This is the textviewNo" + i);
this.linearLayout.addView(tx[i]);
}
this.scrollView.addView(this.linearLayout);
setContentView(this.scrollView);
但是我得到了这个例外
10-28 13:35:59.120: ERROR/AndroidRuntime(2346): Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child
在this.scrollView.addView(this.linearLayout)行 我做错了什么? 感谢
答案 0 :(得分:4)
异常非常明确:您不能向ScrollView添加多个子项。从你的代码我假设linearLayout2
已经在ScrollView中?如果是这样,那么你不需要
this.scrollView.addView(this.linearLayout);
,因为你将TextViews添加到已经在ScrollView
中的LinearLayout