我在将旧的Google Nexus One
与新的SupportMapFragment
混合时遇到了一些问题。
在特定的横向视图中,我有一个HorizontalScrollView
,其中包含地图和某些信息,您必须滚动为了真正看到信息。
问题在于滚动会使SupportMapFragment
的背景可见(默认情况下看似黑色)(实际上我现在无法理解)实际滚动整个视图
图片显示我的意思。
尽管不是同一个问题,但gmaps-api-issues
中有一个类似的,报告过的错误。那么,到目前为止我测试的是什么:
@color/transparent
,即使在XML
和/或以编程方式设置。SupportMapFragment
z-ordering 在调用我的地图之前设置此代码:
GoogleMapOptions op = new GoogleMapOptions();
op.zOrderOnTop(true);
SupportMapFragment.newInstance(op);
所以我没有想法了。 我已成功测试了相同的代码:
Galaxy Nexus
HTC Desire HD
Samsung Galaxy S3
Samsung Galaxy Mini
Galaxy Ace
有什么想法吗?我错过了什么明显的东西吗?
提前感谢您的意见。
答案 0 :(得分:0)
只是要添加到Robert Estivill的答案中 - 最好不要在设备> = 4.1上运行代码,因为它们没有问题。
略有修改版本:
public class FixMapFragment extends SupportMapFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
// Fix for black background on devices < 4.1
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN){
setMapTransparent((ViewGroup) view);
}
return view;
}
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 if (child instanceof SurfaceView) {
child.setBackgroundColor(0x00000000);
}
}
}
}
我会把它放在评论中,但我没有足够的代表