Java 如何充气合并
我通过适配器创建了一个帐户设置页面,其中包含选项的部分标题和列表视图。列表视图是一个“合并”视图,因此可以将其包含到主文件中。然而,似乎合并文件的思想是不能膨胀的 这是我得到的错误:Java 如何充气合并,java,android,xml,android-studio,android-fragments,Java,Android,Xml,Android Studio,Android Fragments,我通过适配器创建了一个帐户设置页面,其中包含选项的部分标题和列表视图。列表视图是一个“合并”视图,因此可以将其包含到主文件中。然而,似乎合并文件的思想是不能膨胀的 这是我得到的错误: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.archive.pod, PID: 13046 android.view.InflateException: Binary XML file line #1 in com.archive.pod:layout/
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.archive.pod, PID: 13046
android.view.InflateException: Binary XML file line #1 in com.archive.pod:layout/layout_center_accountsettings: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true
Caused by: android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true
at android.view.LayoutInflater.inflate(LayoutInflater.java:652)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at com.archive.pod.Profile.AccountSettingsAdapter.getView(AccountSettingsAdapter.java:66)
at android.widget.AbsListView.obtainView(AbsListView.java:2405)
at android.widget.ListView.makeAndAddView(ListView.java:2071)
at android.widget.ListView.fillDown(ListView.java:797)
at android.widget.ListView.fillFromTop(ListView.java:859)
at android.widget.ListView.layoutChildren(ListView.java:1842)
at android.widget.AbsListView.onLayout(AbsListView.java:2202)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at androidx.coordinatorlayout.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1183)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:870)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:889)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
at android.view.View.layout(View.java:22466)
at android.view.ViewGroup.layout(ViewGroup.java:6304)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3157)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2614)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
at android.view.Choreographer.doCallbacks(Choreographer.java:791)
at android.view.Choreographer.doFrame(Choreographer.java:726)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
E/AndroidRuntime:致命异常:主
进程:com.archive.pod,PID:13046
android.view.InflateException:com.archive.pod中的二进制XML文件行#1:layout/layout_center_accountsettings:只能与有效的ViewGroup根和attachToRoot=true一起使用
原因:android.view.InflateException:只能与有效的ViewGroup根一起使用,且attachToRoot=true
在android.view.LayoutInflater.充气(LayoutInflater.java:652)
在android.view.LayoutInflater.inflate(LayoutInflater.java:534)
在com.archive.pod.Profile.AccountSettingsAdapter.getView(AccountSettingsAdapter.java:66)上
在android.widget.AbsListView.obtainView(AbsListView.java:2405)
位于android.widget.ListView.makeAndAddView(ListView.java:2071)
在android.widget.ListView.fillDown(ListView.java:797)中
位于android.widget.ListView.fillFromTop(ListView.java:859)
位于android.widget.ListView.layoutChildren(ListView.java:1842)
在android.widget.AbsListView.onLayout(AbsListView.java:2202)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)上
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)上
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)上
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
位于androidx.coordinatorlayout.widget.coordinatorlayout.layoutChild(coordinatorlayout.java:1183)
位于androidx.coordinatorlayout.widget.coordinatorlayout.onLayoutChild(coordinatorlayout.java:870)
位于androidx.coordinatorlayout.widget.coordinatorlayout.onLayout(coordinatorlayout.java:889)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)中
位于android.widget.FrameLayout.onLayout(FrameLayout.java:270)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)中
位于android.widget.FrameLayout.onLayout(FrameLayout.java:270)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)中
位于android.widget.FrameLayout.onLayout(FrameLayout.java:270)
位于com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
位于android.view.view.layout(view.java:22466)
位于android.view.ViewGroup.layout(ViewGroup.java:6304)
在android.view.ViewRootImpl.performLayout上(ViewRootImpl.java:3157)
在android.view.ViewRootImpl.performTraversals上(ViewRootImpl.java:2614)
位于android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
在android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
在android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
位于android.view.Choreographer.doCallbacks(Choreographer.java:791)
位于android.view.Choreographer.doFrame(Choreographer.java:726)
在android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)中
位于android.os.Handler.handleCallback(Handler.java:883)
位于android.os.Handler.dispatchMessage(Handler.java:100)
位于android.os.Looper.loop(Looper.java:214)
位于android.app.ActivityThread.main(ActivityThread.java:7356)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
合并ListView文件布局\u中心\u accountsettings.xml
因为
getView
要求您只返回一个视图
,很遗憾,您不能通过适配器将
作为列表视图的直接子视图
标记只能膨胀到父级中-这里不是这样,因为getView
要求您使用attachToRoot=false进行膨胀,以便它可以附加视图本身。您需要将其包装在单亲布局中,例如LinearLayout
作为附加警告:您的项目布局中似乎有一个ListView
ListView
s不能很好地处理嵌套滚动-如果需要,可以查看RecyclerView