FragmentActivity中的菜单未显示

时间:2016-11-04 14:51:42

标签: android android-fragments android-fragmentactivity mapfragment

我在FragmentActivity中添加Menu时出现问题。

我在FragmentActivity中添加了一个MapFragment和一些按钮:

enter image description here

然后我尝试在地图上方添加optionsMenu,但我的代码不起作用(运行应用程序时没有错误)。

这是我的FragmentActivity代码:

<pre>package com.bugsnguns.kartta;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.Menu;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;

@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);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.maps_menu, menu);
    return true;
}


@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));
}

}     

3 个答案:

答案 0 :(得分:0)

您需要添加ToolBar,以便为Optionsmenu充气。您可以在Android文档中查看如何添加工具栏(App Bar):https://developer.android.com/training/appbar/setting-up.html

添加Toolbar

后,您的代码可以使菜单膨胀

答案 1 :(得分:0)

将工具栏添加到活动布局

  <android.support.v7.widget.Toolbar
   android:id="@+id/my_toolbar"
   android:layout_width="match_parent"
   android:layout_height="?attr/actionBarSize"
   android:background="?attr/colorPrimary"
   android:elevation="4dp"
   />

并添加活动

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
 setSupportActionBar(toolbar);

答案 2 :(得分:0)

要在FragmentActivity中获得工具栏或操作栏,必须为与FragmentActivity兼容的活动分配一个主题。我本人为此感到挣扎,但是一旦我在清单中的活动中指定了Holo主题,一切都会正常进行。