如何解决此滚动视图错误“ScrollView can host only one direct child”

Posted

技术标签:

【中文标题】如何解决此滚动视图错误“ScrollView can host only one direct child”【英文标题】:how to solve this scroll view error "ScrollView can host only one direct child" 【发布时间】:2021-04-21 19:01:47 【问题描述】:
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawerLayout"
    android:layout_
    android:layout_
    android:background="#ECEFF1"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity"
    tools:openDrawer="end">

<androidx.core.widget.NestedScrollView
    android:layout_
    android:layout_>

        <LinearLayout
            android:layout_
            android:layout_
            android:orientation="vertical">

            <RelativeLayout
                android:layout_
                android:layout_
                android:background="#ED3733">

                <ImageView
                    android:id="@+id/homeScreenNavigation"
                    android:layout_
                    android:layout_
                    android:layout_marginStart="10dp"
                    android:layout_marginLeft="10dp"
                    android:src="@drawable/ic_baseline_menu_24" />

                <ImageView
                    android:layout_
                    android:layout_
                    android:layout_centerInParent="true"
                    android:src="@mipmap/ic_launcher_round" />

            </RelativeLayout>

            <TextView
                android:layout_
                android:layout_
                android:layout_marginLeft="30dp"
                android:layout_marginTop="30dp"
                android:text="Dashboard"
                android:textSize="40sp" />

            <androidx.cardview.widget.CardView
                android:layout_
                android:layout_
                android:layout_marginLeft="10dp"
                android:layout_marginTop="16dp"
                android:layout_marginRight="10dp"
                app:cardCornerRadius="8dp"
                app:cardElevation="8dp">

            </androidx.cardview.widget.CardView>

            <androidx.cardview.widget.CardView
                android:layout_
                android:layout_
                android:layout_marginLeft="10dp"
                android:layout_marginTop="16dp"
                android:layout_marginRight="10dp"
                app:cardCornerRadius="8dp"
                app:cardElevation="8dp">

            </androidx.cardview.widget.CardView>

            <androidx.cardview.widget.CardView
                android:layout_
                android:layout_
                android:layout_marginLeft="10dp"
                android:layout_marginTop="16dp"
                android:layout_marginRight="10dp"
                app:cardCornerRadius="8dp"
                app:cardElevation="8dp">

            </androidx.cardview.widget.CardView>

            <androidx.cardview.widget.CardView
                android:layout_
                android:layout_
                android:layout_marginLeft="10dp"
                android:layout_marginTop="16dp"
                android:layout_marginRight="10dp"
                app:cardCornerRadius="8dp"
                app:cardElevation="8dp">

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

        <com.google.android.material.navigation.NavigationView
            android:id="@+id/nav_view"
            android:layout_
            android:layout_
            android:layout_gravity="start|left"
            app:menu="@menu/drawer_menu" />


    </androidx.core.widget.NestedScrollView>
</androidx.drawerlayout.widget.DrawerLayout>

此处“ScrollView 只能承载一个直接子级” 我不知道如何解决这个错误有人可以帮我解决这个问题 谢谢.................................,.............. ..................................................... ..................................................... ....................

【问题讨论】:

正如错误所说,滚动视图应该只有一个直接子级,但有一个LinearLayout,然后是NavigationView。将NavigationView 移到LinearLayout 内或移出ScrollView 【参考方案1】:

ScrollView 和 NestedScrollView 只能有一个孩子 您可以在 ScrollView 或 NestedScrollView 中使用 ConstraintLayout 或其他 ViewGroup。

祝你好运。

【讨论】:

以上是关于如何解决此滚动视图错误“ScrollView can host only one direct child”的主要内容,如果未能解决你的问题,请参考以下文章

如何快速将视图控制器放入滚动视图中

滚动视图缩放问题

颤振错误:'ScrollController 未附加到任何滚动视图。'在滚动

如何解决此错误“警告:尝试呈现其视图不在窗口层次结构中”?

选择步进器时滚动视图重叠

带有有限单元格的集合视图滚动