我在MapView中的按钮可见性方面遇到了问题。
布局:
<com.google.android.gms.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UPDATE DATA"
android:layout_gravity="center_horizontal"
android:id="@+id/updateMarkers"/>
</com.google.android.gms.maps.MapView>
初始化按钮( updateDataButton )时,如下所示 (在初始化mapView之后)我得到NullPointerException - button为null。
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){
View view = inflater.inflate(R.layout.graph_fragment, container, false);
try {
MapsInitializer.initialize(getActivity().getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
mapView = (MapView) view.findViewById(R.id.map);
mapView.onCreate(savedInstanceState);
mapView.onResume();
updateDataButton = (Button) view.findViewById(R.id.updateMarkers);
updateDataButton.setVisibility(View.VISIBLE);
googleApiClient = new GoogleApiClient.Builder(getContext())
.enableAutoManage(getActivity(), this)
.addConnectionCallbacks(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
googleApiClient.connect();
return view;
}
但是当我在初始化mapView之前初始化按钮时,Everythings似乎没问题,但按钮没有显示。 你知道如何在我的情况下正确显示按钮吗?
答案 0 :(得分:0)
您是否尝试过这种方式:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.ad3luc.maps.AMain"
tools:showIn="@layout/activity_main">
<com.google.android.gms.maps.MapView
android:id="@+id/map_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:text="Button"/>
</RelativeLayout>
使用 RelativeLayout 并在布局中放置 MapView 和按钮小部件。 我没有使用地图的api密钥,但按钮显示在 MapView 小部件上没有问题。