android-studio - 显示的 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 地图应用程序”创建)而且,同样,我只是不知道为什么从导航栏做时我有默认地图。将给予任何帮助
解决方案
推荐阅读
- docker - Dockerfile:运行 ls -l
- typescript - 如何修复打字稿反应博览会的“TypeError:无法读取null的属性'text'”
- python - 在 django 中获取相同 id 的多个条目
- c++ - 有没有办法结合这两个正则表达式?
- c# - 从字符串数组验证电子邮件地址
- python - 在python中使用“适应屏幕”参数更改macOS背景图片
- java - 在运行时执行好的方法
- javascript - 在 React 中映射多个数组
- swiftui - 为什么在我什至在 SwiftUI 上单击它之前调用 NavigationLink
- mysql - 如何计算 MySQL 递归 CTE 中的 Running Total?