使用StreetViewPanoramaFragment时与辅助功能相关的异常

时间:2014-09-07 20:25:03

标签: android android-maps

我的应用在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

有没有人遇到过这个问题?有人解决任何问题吗?

1 个答案:

答案 0 :(得分:0)

使用属性

android:accessibilityLiveRegion="none"
android:importantForAccessibility="no"

用于StreetViewPanoramaFragment的容器(可能适用于直接应用于PanoramaFragment或PanoramaView)以及在启用对讲功能时隐藏容器。