¿Cómo puedo evitar “IllegalStateException: Scrollview puede hospedar solo un hijo directo”?

Estoy usando ScrollView en mi diseño de Android pero muestra

IllegalStateException "Scrollview can host only one direct child"

¿Cómo puedo evitar esta excepción?

Información de locking:

 07-19 15:58:22.308 21372 21372 D AndroidRuntime: Shutting down VM 07-19 15:58:22.313 21372 21372 E AndroidRuntime: FATAL EXCEPTION: main 07-19 15:58:22.313 21372 21372 E AndroidRuntime: Process: com.languoguang.helloworld, PID: 21372 07-19 15:58:22.313 21372 21372 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.languoguang.helloworld/com.languoguang.helloworld.plugin_homeadd.activity.AddDeviceWifiSettingActivity}: android.view.InflateException: Binary XML file line #254: ScrollView can host only one direct child 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3190) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3285) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.-wrap12(Unknown Source:0) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:108) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.os.Looper.loop(Looper.java:166) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7412) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:926) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #254: ScrollView can host only one direct child 07-19 15:58:22.313 21372 21372 E AndroidRuntime: Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.widget.ScrollView.addView(ScrollView.java:292) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:878) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:877) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:877) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:477) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.android.internal.policy.HwPhoneWindow.setContentView(HwPhoneWindow.java:313) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.Activity.setContentView(Activity.java:2843) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.languoguang.helloworld.plugin_homeadd.activity.AddDeviceWifiSettingActivity.onCreate(AddDeviceWifiSettingActivity.java:82) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7358) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3143) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3285) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.-wrap12(Unknown Source:0) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:108) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.os.Looper.loop(Looper.java:166) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7412) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) 07-19 15:58:22.313 21372 21372 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:926) 

Ha agregado más de un control como elementos secundarios de ScrollView. Si desea hacer esto, agregue LinearLayout como hijo directo y coloque los otros controles en él.

Puede evitar IllegalStateException :Scollview can host only one direct child alojando solo un hijo directo en su scrollview

dentro de ScrollView debe contener solo un diseño, de lo contrario, si contiene varios diseños o vistas, obtendrá un error.

Este código de muestra resuelve tu problema,

      

Ejemplo de código incorrecto

       

Diseño principal debe

Si está utilizando fragmentos y SlidingPane, verifique si está usando tags en su diseño xml de su SlidingPane, luego reemplace y agregue sus fragmentos en tiempo de ejecución en oncreateView de su SlidingPane. =]

Mi problema con la misma excepción fue que intenté mostrar una advertencia de Snackbar al usuario con una vista como parámetro para mostrarla. Esa vista estaba dentro de scrollview, y estaba rompiendo la jerarquía de alguna manera. Cuando volví a Toast, la excepción desapareció.

Solo debe agregar un niño para desplazarse por el diseño, no más de eso.