我正在尝试将MapFragment添加到我当前的Fragment中.嵌套片段的使用仅限于FragmentTransactions,您不能在布局中使用xml标记.此外,我希望在用户按下按钮时将其添加到主片段中.所以,getInstance()当用户按下该按钮并将其添加到适当的位置时,我将以编程方式创建MapFragment .它显示正确,到目前为止一切顺利.
问题是在附加MapFragment之后我需要获得一个GoogleMap 放置Marker的引用,但是该getMap()方法返回null(因为片段onCreateView()还没有被调用).
我查看了演示示例代码,我发现他们使用的解决方案是初始化MapFragment onCreate()并在调用onResume()之后获取对GoogleMap的引用onCreateView().
我需要在MapFragment初始化之后立即获取对GoogleMap的引用,因为我希望用户能够使用按钮显示或隐藏地图.我知道一个可能的解决方案是如上所述在开始时创建Map并且只是设置它的可见性消失了,但我希望默认情况下关闭地图,这样如果没有明确要求它就不会占用用户的带宽为了它.
我试过了MapsInitializer,但也没用.我有点卡住了.有任何想法吗?这是我到目前为止的测试代码:
public class ParadaInfoFragment extends BaseDBFragment {
// BaseDBFragment is just a SherlockFragment with custom utility methods.
private static final String MAP_FRAGMENT_TAG = "map";
private GoogleMap mMap;
private SupportMapFragment mMapFragment;
private TextView mToggleMapa;
private boolean isMapVisible = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_parada_info, container, false);
mToggleMapa = (TextView) v.findViewById(R.id.parada_info_map_button); …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的应用程序移植到新的Google Maps API v2,但是在与标记进行交互时遇到了麻烦.
我的背景:我有一张显示公共汽车和公共汽车站的地图.有了旧图书馆,我有自己的ItemizedOverlay用于公共汽车站,另一个用于公共汽车站.每个人都有一个不同的OnTapListener(实际上我使用外部库来显示气球),所以当用户点击总线标记时没有任何反应,但是当他点击公共汽车站标记时,会打开一个包含其信息的活动.此外,在我的ItemizedOverlay中,我使用模型的总线停止对象映射每个标记.
现在使用新的API我有两个主要问题:
我认为这两个问题可以使用Marker的不同子句来解决,但它没有构造函数,并且在将其添加到地图时会得到它的引用,所以我不知道是否可以使用自定义实现.
API是新的,因此网上没有太多关于类似问题的信息.我一直想弄清楚如何解决这个问题,但我一无所获.有谁知道这可能的解决方案?
谢谢.
编辑:我当前应用程序的地图的屏幕截图,有两种类型的标记:
