google 地图 activity 中的工具栏

Toolbar in google map activity

我想为地图添加一个工具栏 activity。问题是,当我 运行 它时 space 在那里,但不显示我的工具栏。

这是我的 xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    tools:context="com.ruben.my_app.ui.activity.GoogleMapActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.ActionBar">
    </android.support.v7.widget.Toolbar>

    <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=".ui.activity.GoogleMapActivity" />
</LinearLayout>

这是风格:

<style name="AppTheme.ActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="actionMenuTextColor">#fff</item>
    <item name="android:actionMenuTextColor">#fff</item>
</style>

这是GoogleMapActivity.java:

  public class GoogleMapActivity extends AppCompatActivity implements OnMapReadyCallback {

    @BindView(R.id.toolbar)Toolbar toolbar;

    private GoogleMap mMap;
    public static int color = 0xFF1C1C1C;
    public static int textColor = 0xFFFFFFFF;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_google_map);
        setSupportActionBar(toolbar);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }


    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        LatLng madrid = new LatLng(40.428462, -3.704952);

        mMap.addMarker(new MarkerOptions().position(madrid).title("Madrid"));
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(madrid,17));
    }
}

是的,正确,它不会在工具栏内显示任何内容,因为您没有设置任何要在工具栏内显示的视图。

这意味着您可以在工具栏内添加视图,例如

<android.support.v7.widget.Toolbar
    android:id="@+id/top_bar_activity_toolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/tool_bar_height"
    android:theme="@style/AppTheme.ActionBar">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/toolbar_left_icon"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:gravity="start"
            android:src="@drawable/hamburger"/>

        <TextView
            android:id="@+id/tool_left_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toEndOf="@+id/toolbar_left_icon"
            android:text="Title"/>

    </RelativeLayout>
</android.support.v7.widget.Toolbar>

并且您可以相应地修改工具栏内的视图。

我就是这样解决的。 (我不需要汉堡图标)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    tools:context="com.ilunion.a_muse.ui.activity.GoogleMapActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimaryDark">

            <TextView
                android:id="@+id/tool_left_title"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_centerVertical="true"
                android:background="@color/colorPrimaryDark"
                android:textColor="@color/white"
                android:text="Title"/>

    </android.support.v7.widget.Toolbar>

    <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=".ui.activity.GoogleMapActivity" />
</LinearLayout>