Android 图像按钮在屏幕方向改变时消失

Android 图像按钮在屏幕方向改变时消失,android,google-maps,android-activity,android-fragments,android-button,Android,Google Maps,Android Activity,Android Fragments,Android Button,我正在开发一个android应用程序,我对android环境相当陌生。我正在使用谷歌地图,并输入一个pin。当用户选择pin时,会出现一个原来隐藏的按钮,可以按下该按钮删除地图上的pin。但是,当屏幕旋转且pin保持选中状态时,删除按钮将消失。即使在屏幕旋转后,如何保持此按钮可见?注意:只有当用户在地图上选择了pin时,按钮才可见 下面是我用来设置标记单击侦听器的代码: map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListene

我正在开发一个android应用程序,我对android环境相当陌生。我正在使用谷歌地图,并输入一个pin。当用户选择pin时,会出现一个原来隐藏的按钮,可以按下该按钮删除地图上的pin。但是,当屏幕旋转且pin保持选中状态时,删除按钮将消失。即使在屏幕旋转后,如何保持此按钮可见?注意:只有当用户在地图上选择了pin时,按钮才可见

下面是我用来设置标记单击侦听器的代码:

map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    public boolean onMarkerClick(final Marker marker) {
        marker.showInfoWindow();
        currentMarker = marker;

        deleteButton = (ImageButton) findViewById(R.id.delete_button);
        deleteButton.setVisibility(View.VISIBLE);

        deleteButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                marker.remove();
                deleteButton.setVisibility(View.GONE);
            }
        });
        return true;
    }
});
我还重写了onPause方法,以便调用save MapFragment的状态,如下所示:

@Override
protected void onPause() {
    super.onPause();
    MapFragment mapFragment = (MapFragment) getFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.setRetainInstance(true);
}

所有这些代码都可以正常工作,除非我旋转设备,按钮消失,即使标记保持选中状态。保持此按钮可见的最佳方法是什么?

之所以不显示,是因为在旋转设备后重新创建了活动;将重新创建整个视图层次结构

此外,在生命周期中调用mapFragment.setRetainInstancetrue的时间太晚。尝试在活动的onCreate中调用setRetainInstance。理想情况下,可以在片段内部调用setRetainInstance