滚动视图在 Android Studio 上出错

Scroll View making an error on Android Studio

我正在尝试制作布局资源文件。但是,在此过程中,我决定让页面处于滚动视图中,以便我可以添加更多项目。当我添加滚动视图标签和关闭标签时,布局资源文件停止响应并出错,因此应用程序无法在模拟器上打开。

这是 XML 代码:

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="5dp"
    android:background="@color/generalBackground"
    android:orientation="vertical"
    android:padding="5dp"
    android:weightSum="100">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


        <!-- Book Info -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:orientation="horizontal"
            android:weightSum="100">

            <ImageView
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="40" />

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="60"
                android:orientation="vertical"
                android:weightSum="60">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="20"
                    android:gravity="center"
                    android:text="Book Title"
                    android:textSize="25sp"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:gravity="center"
                    android:text="Author"
                    android:textSize="17sp"
                    android:textStyle="italic" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:text="Geners"
                    android:textSize="17sp"
                    android:textStyle="italic" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:text="Pages"
                    android:textSize="17sp"
                    android:textStyle="italic" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:text="Language"
                    android:textSize="17sp"
                    android:textStyle="italic" />

            </LinearLayout>
        </LinearLayout>

        <!-- Ratings -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:orientation="horizontal">
            <!-- Good Reads -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="15dp"
                android:layout_weight="10"
                android:gravity="center"
                android:orientation="vertical"
                android:weightSum="20">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:background="@drawable/goodreads" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:orientation="horizontal"
                    android:weightSum="30">

                    <TextView
                        android:id="@+id/goodreadsr"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text=""
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="/"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="5"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                </LinearLayout>

            </LinearLayout>

            <!-- Common Sense Media -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="15dp"
                android:layout_weight="10"
                android:gravity="center"
                android:orientation="vertical"
                android:weightSum="20">

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:background="@drawable/commonsensemedia" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:orientation="horizontal"
                    android:weightSum="30">

                    <TextView
                        android:id="@+id/commonsensemediar"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text=""
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="/"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="5"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                </LinearLayout>

            </LinearLayout>


            <!-- Read Print -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="15dp"
                android:layout_weight="10"
                android:gravity="center"
                android:orientation="vertical"
                android:weightSum="20">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:background="@drawable/readprint" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:orientation="horizontal"
                    android:weightSum="30">

                    <TextView
                        android:id="@+id/readprintr"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text=""
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="/"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="5"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                </LinearLayout>

            </LinearLayout>

            <!-- Kindle -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_margin="15dp"
                android:layout_weight="10"
                android:gravity="center"
                android:orientation="vertical"
                android:weightSum="20">

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:background="@drawable/kindle" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="10"
                    android:orientation="horizontal"
                    android:weightSum="30">

                    <TextView
                        android:id="@+id/kindler"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text=""
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="/"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="10"
                        android:gravity="center"
                        android:text="5"
                        android:textSize="17sp"
                        android:textStyle="bold" />

                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

        <!--Book Summary-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="35dp"
                android:text="Book Summary"
                android:textSize="@dimen/subTitle"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/bookSummary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="add book summary"
                android:textSize="15sp"
                android:textStyle="italic" />

        </LinearLayout>

        <!-- Book Quotes -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="20"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Book Quotes"
                android:textSize="@dimen/subTitle"
                android:textStyle="bold" />

            <HorizontalScrollView
                android:layout_width="wrap_content"
                android:layout_height="100dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/quotebox1"
                        android:layout_width="250dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="10dp"
                        android:background="@drawable/quotebox"
                        android:text="add quote" />

                    <TextView
                        android:id="@+id/quotebox2"
                        android:layout_width="250dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="10dp"
                        android:background="@drawable/quotebox"
                        android:text="add quote" />

                    <TextView
                        android:id="@+id/quotebox3"
                        android:layout_width="250dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="10dp"
                        android:background="@drawable/quotebox"
                        android:text="add quote" />

                    <TextView
                        android:id="@+id/quotebox4"
                        android:layout_width="250dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="10dp"
                        android:background="@drawable/quotebox"
                        android:text="add quote" />


                    <TextView
                        android:id="@+id/quotebox5"
                        android:layout_width="250dp"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:layout_margin="10dp"
                        android:background="@drawable/quotebox"
                        android:text="add quote" />

                </LinearLayout>
            </HorizontalScrollView>
        </LinearLayout>

        <!-- Reviews -->

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="REVIEWS"
                android:textSize="25sp"
                android:textStyle="bold" />


            <!--review 1-->
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <de.hdodenhof.circleimageview.CircleImageView
                    android:id="@+id/profilepic1"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_gravity="bottom"
                    android:background="@drawable/profilepic" />

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/reviewbubble"
                    android:orientation="vertical"
                    android:weightSum="100">

                    <TextView
                        android:id="@+id/review1"
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_marginLeft="52dp"
                        android:layout_marginTop="35dp"
                        android:layout_marginRight="52dp"
                        android:layout_marginBottom="42dp"
                        android:layout_weight="80"
                        android:text="add a review"
                        android:textColor="@color/black"
                        android:textSize="15sp"
                        android:textStyle="italic" />

                </LinearLayout>
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:orientation="vertical"
            android:weightSum="100">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="20"
                android:text="rate this book"
                android:textSize="25sp" />

            <RatingBar
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="80" />

        </LinearLayout>

    </ScrollView>
</LinearLayout>

非常感谢您的帮助,非常感谢。

您的布局结构如下所示:

<LinearLayout>

    <ScrollView>

        <!-- Book Info -->
        <LinearLayout>

            <ImageView/>
            <LinearLayout>
                <TextView/>
                <TextView/>
                <TextView/>
                <TextView/>
                <TextView/>
            </LinearLayout>
            
        </LinearLayout>

        <!-- Ratings -->
        <LinearLayout>
            
            <!-- Good Reads -->
            <LinearLayout>

                <ImageView/>
                
                <LinearLayout>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                </LinearLayout>

            </LinearLayout>

            <!-- Common Sense Media -->
            <LinearLayout>

                <ImageView/>
                
                <LinearLayout>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                </LinearLayout>

            </LinearLayout>

            <!-- Read Print -->
            <LinearLayout>

                <ImageView/>
                
                <LinearLayout>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                </LinearLayout>

            </LinearLayout>

            <!-- Kindle -->
            <LinearLayout>

                <ImageView/>
                
                <LinearLayout>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

        <!--Book Summary-->
        <LinearLayout>

            <TextView/>
            <TextView/>

        </LinearLayout>

        <!-- Book Quotes -->
        <LinearLayout>

            <TextView/>

            <HorizontalScrollView>

                <LinearLayout>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                    <TextView/>
                </LinearLayout>
                
            </HorizontalScrollView>
            
        </LinearLayout>

        <!-- Reviews -->
        <LinearLayout>

            <TextView/>

            <!--review 1-->
            <LinearLayout>

                <de.hdodenhof.circleimageview.CircleImageView/>

                <LinearLayout>
                    <TextView/>
                </LinearLayout>
                
            </LinearLayout>
            
        </LinearLayout>

        <LinearLayout>

            <TextView/>
            <RatingBar/>

        </LinearLayout>

    </ScrollView>
    
</LinearLayout>

我试图编译你的布局代码,但我发现了这个错误

ScrollView can host only one direct child

您可以在您的布局结构中看到,滚动视图下有超过 1 个子布局。

解决办法是在滚动视图下只设置一个直接子节点。也许你可以将 1 个 LinearLayout 放在滚动视图下,然后,其余代码可以放在 1 个线性布局中。也许是这样的:

<LinearLayout>

    <ScrollView>
    
        <LinearLayout>

            <!-- Book Info -->
            <!-- Ratings -->
                <!-- Good Reads -->
                <!-- Common Sense Media -->
                <!-- Read Print -->
                <!-- Kindle -->
            <!--Book Summary-->
            <!-- Book Quotes -->
            <!-- Reviews -->
                <!--review 1-->

        </LinearLayout>

    </ScrollView>
    
</LinearLayout>