我已经在Android Studio的应用程序中创建了一个标准的谷歌Map活动,Map的工作效果如预期。
我的Activity名为“NativeMap”,然后Activity启动,我在Activity顶部看到一个工具栏/应用程序栏,文本为“NativeMap”。
Activity的布局文件是标准的,并调用一个Map片段:
<?xml version="1.0" encoding="utf-8"?>
<androidx.fragment.app.FragmentContainerView
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=".NativeMap">
</androidx.fragment.app.FragmentContainerView>
因此,XML中没有定义toolbar
供我引用或自定义...
这个活动的onCreate
看起来也很简单,所以我只能再次假设背景中包含了很多东西。
// public class NativeMap extends FragmentActivity implements OnMapReadyCallback {
public class NativeMap extends AppCompatActivity implements OnMapReadyCallback {
private static final String TAG = NativeMap.class.getSimpleName();
private GoogleMap mMap;
private ActivityNativeMapBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityNativeMapBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
if (mapFragment != null) mapFragment.getMapAsync(this);
}
@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));
}
}
(Note我已经将这个类转换为扩展AppCompatActivity
,以使条形图显示在顶部,当它扩展FragmentActivity
时,顶部条形图根本不显示。)
如何访问此工具栏或将其替换为标准工具栏。
我还想在这个活动中添加一个抽屉菜单,但是通过这个片段包含,所有的东西看起来都很抽象,我不知道如何添加。
我已经在谷歌上搜索了大约一个星期了,找不到任何东西,甚至似乎指出我在这个正确的方向。
1条答案
按热度按时间pzfprimi1#
我想出来了
androidx.fragment.app.FragmentContainerView
只能包含片段,因此需要更改布局中的基本容器。我把它改成了
<androidx.drawerlayout.widget.DrawerLayout
,以允许包含主菜单抽屉。(在下面的树视图中称为“_drawer”)在
DrawerLayout
中,我添加了一个androidx.constraintlayout.widget.ConstraintLayout
来包含主要的布局组件,包括Map片段和工具栏。(约束布局在下面的树视图中称为“mainLayout”)然后将工具栏添加到
com.google.android.material.appbar.AppBarLayout
中。然后将图谱片段添加到
AppBarLayout
下面的<fragment>
标记中。这和预期的一样有效。
布局XML现在如下所示: