Sun*_*Sun 3 android android-fragmentactivity mapfragment google-maps-android-api-2
使用下面的代码show和hide 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)
可以使用事务显示/隐藏片段.
try {
FragmentTransaction ft = .getFragmentManager ().beginTransaction ();
ft.hide (mMapFragment);
}
catch (Exception e) {
e.printStackTrace ();
}
Run Code Online (Sandbox Code Playgroud)
你可以试试这个
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)
试试这个,让我知道它是否有效.
| 归档时间: |
|
| 查看次数: |
6135 次 |
| 最近记录: |