java.lang.IllegalStateException: ScrollView can host only one direct child
XML 佈局中 ScrollView 已包裹一個 LinearLayout:
<ScrollView>
<LinearLayout android:id="@+id/container">
<TextView ... />
</LinearLayout>
</ScrollView>
程式碼中又對同一 ScrollView 呼叫 sv.addView(llay),導致直接子元素變成兩個(原有 LinearLayout + 新增的 llay)。
LinearLayout llay = (LinearLayout) findViewById(R.id.container);for (String text : detailsArray) {
TextView tv = new TextView(getContext());
tv.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText(text);
llay.addView(tv); // 只加到 LinearLayout
}
// 不需要 sv.addView(llay);
RecyclerView + LinearLayoutManager,效能更佳且支援複雜佈局。LayoutParams 懹對父容器類型(此處為 LinearLayout.LayoutParams)。