简体   繁体   中英

If internet is off getting error java.lang.IllegalStateException: ScrollView can host only one direct child

I am using NestedScrollView with single layout but they give me error like below when Internet is off, if internet on this is working fine.

Process: com.oktested, PID: 8028
        java.lang.IllegalStateException: ScrollView can host only one direct child
            at androidx.core.widget.NestedScrollView.addView(NestedScrollView.java:444)
            at com.google.android.material.snackbar.BaseTransientBottomBar.showView(BaseTransientBottomBar.java:511)
            at com.google.android.material.snackbar.BaseTransientBottomBar$1.handleMessage(BaseTransientBottomBar.java:191)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:176)
            at android.app.ActivityThread.main(ActivityThread.java:6662)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

XML Code:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/color_black">

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

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

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/_10sdp"
                    android:layout_marginTop="@dimen/_70sdp"
                    android:fontFamily="@font/roboto_regular"
                    android:text="@string/browsebyfaces"
                    android:textColor="@color/colorAccent"
                    android:textSize="@dimen/_24sdp"
                    android:layout_marginRight="@dimen/_10sdp"
                    android:textStyle="bold" />

                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/rvFaces"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/_10sdp"
                    android:layout_marginTop="@dimen/_5sdp"
                    android:layout_marginRight="@dimen/_10sdp"
                    android:layout_marginBottom="@dimen/_10sdp"
                    android:nestedScrollingEnabled="false" />

            </LinearLayout>

        </androidx.core.widget.NestedScrollView>

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

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="@dimen/_70sdp"
                android:alpha="1"
                android:background="@drawable/bg_gradient_home" />

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

                <ImageView
                    android:id="@+id/btnBack"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:padding="@dimen/_10sdp"
                    android:src="@drawable/ic_vector_arrow" />

                <RelativeLayout
                    android:id="@+id/sideMenu"
                    android:layout_width="@dimen/_50sdp"
                    android:layout_height="@dimen/_50sdp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:padding="@dimen/_12sdp">

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:src="@drawable/ic_menu_sky" />

                </RelativeLayout>

            </RelativeLayout>

        </RelativeLayout>

    </RelativeLayout>

I have also search more result but not getting proper solution and i have already try every solution from below link but not working in my case.

ScrollView can host only one direct child with relativelayout
Scrollview can host only one direct child
A scroll view can have only one child Android XML file
java.lang.IllegalStateException: ScrollView can host only one direct child

If I am wrong please suggest me and please help me.

at com.google.android.material.snackbar.BaseTransientBottomBar.showView(BaseTransientBottomBar.java:511)

Your stack trace tells me that you try to add a Snackbar to the ScrollView.

The Snackbar is tries to find a parent view where it can add its view. You probably called the Snackbar.make() function with your ScrollView, so it tries to add the Snackbar there. If you pass the RelativeLayout as a parent to the make function it will hopefully work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM