显示Android工作室地图有问题(谷歌地图api)

时间:2021-05-27 07:15:22

标签: android-studio android-fragments

我正在使用谷歌地图 API 创建 Android Studio 应用程序,一开始我只有一张地图,当我开始我的程序时。我为地图做了特定的风格,并在特定的城市设置了相机。 然后,我添加了主菜单,我可以在其中选择不同的选项(例如,用户个人资料),此时我只能在我单击此处时在地图上观看。所以,问题是当我从工具栏中选择它时,它给了我默认的地图视图。但是我需要我的,我之前已经解决了,我不知道如何让程序显示我想要的地图

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

在我的班级里,我有这样的鳕鱼:

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

0 个答案:

没有答案