kyr*_*rax 6 android listview exception expandablelistview
用户在某些手机上的应用中遇到以下异常.我试过自己复制错误但不能.我通过堆栈溢出搜索类似的问题,并尝试了他们的解决方案,但似乎没有工作.
以下是我已经尝试过的答案:
android:windowSoftInputMode="stateHidden|adjustPan"我有一个edittext但它在expandablelistview之外.
我试图找到解释为什么会发生这种情况以及可能导致它发生的原因.我道歉但我不能发布任何代码.
java.lang.IllegalArgumentException:参数必须是此视图的后代,位于android.view.ViewGroup的android.view.ViewGroup.offsetRectTetMarentMandCoords(ViewGroup.java:4505)上的android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4568) $.ViewLocationHolder.init(ViewGroup.java:6743)位于android.view上的android.view.ViewGroup $ ViewLocationHolder.obtain(ViewGroup.java:6680)android.view.ViewGroup $ ChildListForAccessibility.init(ViewGroup.java:6638).位于android.view.View.View.View.InitializeAccessibilityNodeInfo的android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal(ViewGroup.java:2525)的android.view.ViewGroup.addChildrenForAccessibility(ViewGroup.java:1697)上的ViewGroup $ ChildListForAccessibility.obtain(ViewGroup.java:6606) (View.java:5213)android.widget.At上的android.widget.AapListView.onInitializeAccessibilityNodeInfo(AdapterView.java:946)android.widget.ListView.onInitializeAccessibilityN的android.widget.AbsListView.onInitializeAccessibilityNodeInfo(AbsListView.java:1449)odeInfo(ListView.java:3781)位于android.view.View.View.Actin上的android.view.View.View.View.View.View.View.View.View.Actin上的android.widget.ExpandableListView.onInitializeAccessibilityNodeInfo(ExpandableListView.java:1348)(View.java:5174) :5161)在android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:811)在android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:834)在android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController. java:834)at android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:720)at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityI)nteractionController.java:147)在android.view.AccessibilityAtroller上获取$ 300(AccessibilityInteractionController.java:49)android.view.AccessibilityInteractionController $ PrivateHandler.handleMessage(AccessibilityInteractionController.java:971)在android.os.Handler.dispatchMessage(Handler. java:102)在android.app.Looper.loop(Looper.java:136)的android.app.ActivityThread.main(ActivityThread.java:5097)at java.lang.reflect.Method.invokeNative(Method.java)at at java.lang.reflect.Method.invoke(Method.java:515)位于com.android.internal.os.ZygoteInit.main的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785) ZygoteInit.java:601)在dalvik.system.NativeStart.main(NativeStart.java)
问题是由于向两个不同的列表视图添加了错误的膨胀标头引起的.
我使用listViewA作为父级的视图进行了充气并将其添加到了视图中listViewB.因此:
RelativeLayout listViewHeader = (RelativeLayout) inflater.inflate(R.layout.listviewheader, listViewA, false);
// Set some views
listViewA.addHeaderView(listViewHeader);
listViewB.addHeaderView(listViewHeader);
Run Code Online (Sandbox Code Playgroud)
我通过将以上内容更改为以下内容来修复它:
RelativeLayout listViewHeaderA = (RelativeLayout) inflater.inflate(R.layout.listviewheader, listViewA, false);
RelativeLayout listViewHeaderB = (RelativeLayout) inflater.inflate(R.layout.listviewheader, listViewB, false);
listViewA.addHeaderView(listViewHeaderA);
listViewB.addHeaderView(listViewHeaderB);
Run Code Online (Sandbox Code Playgroud)
至于重现崩溃,问题发生在打开Google Talk Back时.以下是我对这种情况的看法:Google Talk Back会对关注的视图(通过触摸或自动聚焦)进行文本到语音转换.当它进入具有多个请求焦点的视图的屏幕时,它根据层次/顺序读取视图.
如果您有一个包含三个视图(子项)的布局(父级),Google Talk Back会检查视图的排列方式,然后相应地读取它们.例如,在三个水平排列的文本视图的布局中,Google Talk Back可以先读取左侧textview,然后读取中间的一个,然后读取右侧的一个.
在我的例子中,我用一个标题视图listViewA作为父项膨胀,并将该视图添加到两个listViewA和listViewB.当listViewB获得焦点并且Google Talk Back尝试解释其子节点时,它会看到标题视图不是列表的子节点并抛出异常.如果我没有父项(null)膨胀标题视图,也会发生这种情况.
| 归档时间: |
|
| 查看次数: |
6531 次 |
| 最近记录: |