我正在使用谷歌地图 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 地图应用程序”创建) 而且,再次,我只是不知道为什么从导航栏执行时我有默认地图。 将获得任何帮助