You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决NestedScrollView只能包含一个直接子View的异常?

解决ScrollView/NestedScrollView只能包含一个直接子View的布局异常

报错信息

android.view.InflateException: Binary XML文件第44行:ScrollView只能包含一个直接子View
Caused by: java.lang.IllegalStateException: ScrollView只能包含一个直接子View

问题根源

ScrollView(包括NestedScrollView)的设计规则是只能拥有一个直接子View,你的布局代码中NestedScrollView下直接嵌套了多个TextView和LinearLayout组件,违反了这个规则,导致布局加载时触发异常。

修复方案

将NestedScrollView内的所有子元素统一包裹到一个容器布局(比如垂直方向的LinearLayout)中,让这个容器成为NestedScrollView的唯一直接子View,内部再保留原有的所有UI元素。同时清理原代码中无效的CDATA片段,避免XML解析错误。

修改后的完整布局代码

<androidx.cardview.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:aapt="http://schemas.android.com/aapt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/half_view_margin_standard"
    android:layout_marginTop="@dimen/view_margin_standard"
    android:layout_marginRight="@dimen/half_view_margin_standard"
    android:layout_marginBottom="@dimen/half_view_margin_standard">

    <LinearLayout
        android:id="@+id/ll_home_header_parent"
        android:orientation="vertical"
        android:background="@color/card_background_color"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.core.widget.NestedScrollView
            android:id="@+id/scrollView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true">

            <!-- 新增的根容器,作为NestedScrollView的唯一直接子View -->
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/tv_month_name"
                    android:textSize="@dimen/app_titles_text_size"
                    android:textStyle="bold"
                    android:textColor="@color/abc_decor_view_status_guard"
                    android:gravity="center"
                    android:layout_gravity="center"
                    android:paddingTop="@dimen/view_margin_standard"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="மே - திங்கள்"/>

                <LinearLayout 
                    android:gravity="center" 
                    android:layout_gravity="center" 
                    android:orientation="horizontal" 
                    android:layout_width="match_parent" 
                    android:layout_height="wrap_content" 
                    android:layout_marginTop="@dimen/half_view_margin_standard">
                    <TextView 
                        android:id="@+id/tv_date"
                        android:textSize="@dimen/app_display_type_1_text_size"
                        android:textColor="@color/abc_decor_view_status_guard"
                        android:gravity="center"
                        android:layout_gravity="center"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="08-05-2017"
                        android:fontFamily="@font/product_bold"/>
                </LinearLayout>

                <LinearLayout
                    android:layout_width="335dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="@dimen/half_view_margin_standard"
                    android:layout_marginBottom="@dimen/half_view_margin_standard"
                    android:orientation="horizontal">
                    <TextView
                        android:id="@+id/sf"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="left"
                        android:text="நல்ல நேரம்"
                        android:textColor="@color/black"
                        android:textSize="@dimen/app_body_type_1_text_size" />

                    <TextView
                        android:id="@+id/tv_morning"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="left"
                        android:text="கா"
                        android:textColor="@color/black"
                        android:textSize="@dimen/app_body_type_1_text_size" />

                    <TextView
                        android:id="@+id/tv_morning_time"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="left"
                        android:text="10.30 - 12.00"
                        android:textColor="@color/black"
                        android:textSize="@dimen/app_body_type_1_text_size" />

                    <TextView
                        android:id="@+id/tv_evening"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:text="மா"
                        android:textColor="@color/black"
                        android:textSize="@dimen/app_body_type_1_text_size" />

                    <TextView
                        android:id="@+id/tv_evening_time"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="left"
                        android:text="10.30 - 12.00"
                        android:textColor="@color/black"
                        android:textSize="@dimen/app_body_type_1_text_size" />
                </LinearLayout>

                <LinearLayout
                    android:orientation="vertical"
                    android:background="@color/card_background_color"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
                    <TextView
                        android:id="@+id/tv_tamil_month_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="center"
                        android:text="சித்திரைத்"
                        android:textColor="@color/abc_decor_view_status_guard"
                        android:textSize="@dimen/app_big_sub_heads_text_size" />

                    <TextView
                        android:id="@+id/tv_viratham_home"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="center"
                        android:text="சித்திரைத்"
                        android:textColor="@color/abc_decor_view_status_guard"
                        android:textSize="@dimen/app_big_sub_heads_text_size" />

                    <TextView
                        android:id="@+id/tv_viratham_time_range"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_gravity="center"
                        android:layout_marginLeft="@dimen/half_view_margin_standard"
                        android:gravity="center"
                        android:text="சித்திரைத்"
                        android:textColor="@color/abc_decor_view_status_guard"
                        android:textSize="@dimen/app_big_sub_heads_text_size" />

                    <TextView
                        android:id="@+id/tv_vishesham"
                        android:textSize="@dimen/app_body_type_1_text_size"
                        android:textColor="@color/black"
                        android:gravity="center"
                        android:layout_gravity="center"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/half_view_margin_standard"
                        android:text="காலை"/>
                </LinearLayout>

            </LinearLayout>
        </androidx.core.widget.NestedScrollView>
    </LinearLayout>
</androidx.cardview.widget.CardView>

核心修改点

  • 新增垂直方向的LinearLayout作为NestedScrollView的唯一直接子View,所有原UI元素都放在这个容器内,符合ScrollView的布局规则。
  • 删除了原代码中无效的CDATA片段,避免XML解析失败。

内容的提问来源于stack exchange,提问作者user20936145

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:16:07