【问题标题】:Google Maps not showing in fragment within pager adapter谷歌地图没有显示在寻呼机适配器的片段中
【发布时间】:2017-01-02 18:53:08
【问题描述】:

尝试将代码集成到第 3 页上的应用程序中。使用寻呼机适配器。可以访问页面,但不能访问地图。只出现白屏,没有出现 Google 徽标。

activity_maps2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1c1356"
android:orientation="vertical">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.porteradvertising.richmondmeltdown2.MapsActivity" />

</LinearLayout>

Maps_Activity.Java

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps2);
    // 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);
}


/**
 * Manipulates the map once available.
 * This callback is triggered when the map is ready to be used.
 * This is where we can add markers or lines, add listeners or move the camera. In this case,
 * we just add a marker near Sydney, Australia.
 * If Google Play services is not installed on the device, the user will be prompted to install
 * it inside the SupportMapFragment. This method will only be triggered once the user has
 * installed Google Play services and returned to the app.
 */
@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}

}

寻呼机适配器.Java

public class PagerAdapter extends FragmentPagerAdapter {

String title;
Context context;

public PagerAdapter(FragmentManager fm) {
    super(fm);


}

@Override
public android.support.v4.app.Fragment getItem(int arg0) {
    switch (arg0) {
        case 0:
            return new FragmentTwo();
        case 1:
            return new FragmentOne();
        case 2:
            return new android.support.v4.app.Fragment();
        case 3:
            return new FragmentThree();
        default:
            break;
    }
    return null;
}

@Override
public int getCount() {
    return 4;
}

String[] titles = {"Home", "Schedule","Map","General Info"};

@Override
public CharSequence getPageTitle(int position) {
    return titles[position];
}
}

【问题讨论】:

    标签: java android google-maps android-studio android-fragments


    【解决方案1】:

    首先,您应该在 MapsActivity 中扩展 Fragment 而不是 FragmentActivity

    并使用

    case 2:
                return new MapsActivity();
    

    而不是

    case 2:
                return new android.support.v4.app.Fragment();
    

    在您的 MapsActivity 的 onCreateView 中使用这段代码

     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.activity_maps2,container,false);
            MapView mapView = (MapView) view.findViewById(R.id.map);
            mapView.onCreate(savedInstanceState);
            mapView.onResume(); // needed to get the map to display immediately
            return view;
        }
    

    并确保您的清单中有这样的 API 密钥

    <application 
    ....
    ...>
     <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="YOUR_API_KEY" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多