【问题标题】:Google Maps V2 black screen flicker when adding or removing itGoogle Maps V2 添加或删除时黑屏闪烁
【发布时间】:2023-03-26 05:32:01
【问题描述】:

我有一个带有 3 个片段的活动,这些片段用标签切换.. 其中一个片段有一张地图.. 我试过在片段中使用 SupportMapFragment 和 com.google.android.gms.maps.MapView

但是当我添加或替换具有地图的片段时..我得到一个屏幕黑色闪烁..其他片段永远不会发生这种情况

我已经查看并尝试使地图的背景透明,但这对我没有任何好处

任何机构都有解决方案?

【问题讨论】:

  • 如何使地图背景透明?
  • 您应该让地图加载一段时间,尝试替换/添加Map Fragment时添加new Handler().postDelayed
  • @Anuj 可以详细说明一下吗?具体怎么做?
  • @NullPointerException ,我在帖子中提到它不起作用:)
  • @elmorabea 你是怎么解决这个问题的

标签: android google-maps android-fragments google-maps-android-api-2


【解决方案1】:

其实我要发到这里,你可以试试

 new Handler().post(new Runnable()
            {
                public void run()
                {
                    mSupportMapFragment = new SupportMapFragment();
                    mFragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
                    mFragmentTransaction.replace(mMapWrapperLayoutStoreMap.getId(), mSupportMapFragment);
                    mFragmentTransaction.addToBackStack(BK_STK_SUPPORT_MAP_FRAGMENT);
                    mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).commit();
                }
            });

也使用setTransition 作为打开,如果它有效,请告诉我。

【讨论】:

  • 其实我建议你从java中添加SupportMapFragment而不是直接添加到XML布局文件中,它会起作用。
  • 帮助您根据自己的意愿提供时间和处理来加载片段
  • 这有助于添加片段,但删除片段时仍然存在同样的问题
  • 你用getSupportFragmentManager().popBackStackImmediate(BK_STK_SUPPORT_MAP_FRAGMENT, FragmentManager.POP_BACK_STACK_INCLUSIVE); POP你的片段了吗?
  • 对不起问题仍然存在,即使现在开始再次闪烁,我将其更改为单独的活动
【解决方案2】:

加载地图后,您将在地图片段的onActivityCreated() 中了解。 您应该调用以下方法

private void setMapTransparent(ViewGroup group) {
    int childCount = group.getChildCount();
    for (int i = 0; i < childCount; i++) {
        View child = group.getChildAt(i);
        if (child instanceof ViewGroup) {
            setMapTransparent((ViewGroup) child);
        } else {
             child.setBackgroundColor(0x00000000);
        }
    }
}

作为

setMapTransparent((ViewGroup) fragment.getView());

你的fragment 是mapFragment。希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2013-09-03
    • 2021-03-24
    相关资源
    最近更新 更多