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>
我想为地图添加一个工具栏 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>