如何隐藏地图片段 - Android

Sun*_*Sun 3 android android-fragmentactivity mapfragment google-maps-android-api-2

使用下面的代码showhide MapFragment,它运作良好:

public class MapFragmentActivity extends FragmentActivity {
...........
mMapFragment = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map));
googleMap = mMapFragment.getMap();  
googleMap.setMyLocationEnabled(true);
.....
if(isChecked)
  {                                 
        mMapFragment.getView().setVisibility(View.VISIBLE);                                     
  }
  else 
  {
        mMapFragment.getView().setVisibility(View.GONE);
  }
Run Code Online (Sandbox Code Playgroud)

但每当我使用它时Animation,Map永远不会隐藏,它始终是visible,而动画对我有用;

if(isChecked)
    {               
        mMapFragment.getView().setVisibility(View.VISIBLE);
        mMapFragment.getView().startAnimation(AnimationUtils.loadAnimation(MapFragmentActivity.this,
         R.anim.slide_up));
    }
    else 
    {
        mMapFragment.getView().setVisibility(View.GONE);
        mMapFragment.getView().startAnimation(AnimationUtils.loadAnimation(MapFragmentActivity.this,
         R.anim.slide_down));
    }
Run Code Online (Sandbox Code Playgroud)

Mur*_*ain 5

可以使用事务显示/隐藏片段.

try {
        FragmentTransaction ft = .getFragmentManager ().beginTransaction ();
        ft.hide (mMapFragment);
    }
    catch (Exception e) {
        e.printStackTrace ();
    }
Run Code Online (Sandbox Code Playgroud)


Ski*_*ᴉʞS 5

你可以试试这个

      private GoogleMap mMap;
    private SupportMapFragment mMapFragment;

if(isCheked) {
       mMapFragment = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.mapFragment));
    mMap = mMapFragment.getMap();

    mMapFragment.getView().setVisibility(View.Visible);

}
else {
   mMapFragment = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.mapFragment));
    mMap = mMapFragment.getMap();

    mMapFragment.getView().setVisibility(View.INVISIBLE);

}
Run Code Online (Sandbox Code Playgroud)

或者简单的方法是:

    if(isCheked) {
getSupportFragmentManager().beginTransaction().show(mFragment).commit();

        }
        else {
          getSupportFragmentManager().beginTransaction().hide(mFragment).commit();
        }
Run Code Online (Sandbox Code Playgroud)

试试这个,让我知道它是否有效.