首页 > 解决方案 > 显示的 Android Studio 地图有问题(google maps api)

问题描述

我正在使用 google maps api 创建 Android studio 应用程序,一开始我在启动我的程序时只有一张地图。我为地图做了特殊的风格,并在特定的城市设置了相机。然后,我添加了主菜单,我可以在其中选择不同的选项(例如,用户配置文件),此时我只有在此处单击时才能在地图上观看。所以,问题是当我从工具栏中选择它时,它会给我默认的地图视图。但我需要我的,我之前已经解决了,我不知道如何制作程序来显示我想要的地图

为了帮助您理解,我在开始时有一个带有工具栏的活动(它称为activity_maps,我在主类中设置了内容视图),它看起来像这样:在此处输入图像描述

在我的课堂上,我有这样的鳕鱼:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    Toolbar toolbar = findViewById(R.id.toolbar);
    drawer = findViewById(R.id.drawer_layout);
    NavigationView navigationView = findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open,
            R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ProfileFragment()).commit();
        navigationView.setCheckedItem(R.id.nav_profile);
    }
}
 @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
        case R.id.nav_map:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MapFragment()).commit();
            break;

        case R.id.nav_profile:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ProfileFragment()).commit();


            break;

        case R.id.nav_chats:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ChatFragment()).commit();
            break;

        case R.id.nav_coop:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new CoopFragment()).commit();
            break;


    }
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

如果我有上面这样的代码,地图设置为默认值,但如果我注释与工具栏、导航菜单连接的行并使用地图将内容视图设置为布局(现在不是导航菜单),一切正常

所以,我认为问题与工具栏有关

使用导航菜单访问地图,我有一个扩展片段的类

package com.example.mapevents;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

public class MapFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.test_work_of_the_map, container, false);

}
}

布局 test_work_of_the_map 是来自 google api 的默认布局(由 android studio 模板“Google 地图应用程序”创建)而且,同样,我只是不知道为什么从导航栏做时我有默认地图。将给予任何帮助

标签: android-studioandroid-fragments

解决方案


推荐阅读