我的应用在SupportMapFragment上方的framelayout中有一个StreetViewPanoramaFragment,当有人点击地图上的位置标记时,我会动态显示街景。 在我的错误跟踪系统中,我看到很多与可访问性相关的崩溃,当我在辅助功能设置中打开“对讲”时,我能够重现同样的崩溃。
例外:
java.lang.RuntimeException: Callbacks must set parent bounds in populateNodeForVirtualViewId()
at iv.a(SourceFile:56)
at iw.a(SourceFile:716)
at hq.a(SourceFile:112)
at hw.createAccessibilityNodeInfo(SourceFile:42)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:724)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:147)
at android.view.AccessibilityInteractionController.access$300(AccessibilityInteractionController.java:49)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:971)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5140)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
at dalvik.system.NativeStart.main(Native Method)
相关布局部分:
<FrameLayout
android:id="@+id/places_map_holder"
android:layout_width="match_parent"
android:layout_weight=".45"
android:layout_height="0dp">
<fragment
android:id="@+id/places_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
android:paddingTop="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingBottom="32dp"
map:cameraTilt="30" />
<fragment
android:id="@+id/streetviewpanorama"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
class="com.google.android.gms.maps.SupportStreetViewPanoramaFragment" />
</FrameLayout>
显示/隐藏相关代码:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_down, R.anim.fade_out,
R.anim.slide_down, R.anim.fade_out);
if (show) {
ft.show(mSvpFragment);
} else {
ft.hide(mSvpFragment);
}
// commit and etc
有没有人遇到过这个问题?有人解决任何问题吗?
答案 0 :(得分:0)
使用属性
android:accessibilityLiveRegion="none"
android:importantForAccessibility="no"
用于StreetViewPanoramaFragment的容器(可能适用于直接应用于PanoramaFragment或PanoramaView)以及在启用对讲功能时隐藏容器。