nestedscrollview(及 scrollview)要求其 xml 布局中**有且仅有一个直接子 view**,若在 `
Android 的 ScrollView 及其兼容包组件 androidx.core.widget.NestedScrollView 继承自 FrameLayout,内部实现强制限制:只能添加一个直接子视图(addView() 仅允许调用一次)。当你在
java.lang.IllegalStateException: ScrollView can host only one direct child
在你提供的 XML 中,
这明显违反了“单子视图”约束。
✅ 必须将所有子内容包裹在一个根布局中,推荐使用 LinearLayout(垂直方向)或 ConstraintLayout(更灵活)。以下是修正后的结构模板:
修复该错误的核心原则只有一条:让 NestedScrollView 的 XML 直接子节点严格限定为 1 个布局容器。检查你的 XML,把所有原本与 NestedScrollView 并列的控件全部剪切进这个容器内——问题即刻解决。这是 Android 滚动容器的硬性设计约束,理解并遵守它,是构建稳定 UI 的基础。