请参阅myprevious question了解其工作原理的详细信息。
当前设置
我在扩展SherlockMapFragmentActionBarSherlock(abs)库中创建了一个名为SupportMapFragment的类。这可以很好地显示地图等,我直到现在才意识到(因为我是个白痴)以下:
我创建了一个名为mapfrag的sherlockmapfragment实例。
然后为了使用和显示这个,我调用mapfrag.newInstance()。
这实际上是在返回一个supportmappfragment实例,但是这个调用对于显示mappview是必要的。
这对于我想要实现的目标来说是一个巨大的问题,因为我正试图将我的片段添加到一个选项卡式导航栏中,但显然我不能将SupportMapFragment添加到一个tablistener中,因为我得到了各种类转换异常等,因为它期望扩展SherlockFragmentFragment
有人能绕过这个吗?或者如果我想让自己更清楚,请直接问这个问题。
一种可能的解决方案
一种解决方案是创建自己的选项卡栏并处理Fragments自己的事务。但是,工具已经在那里了,如果只是一个简单的修复,我真的不想这么做。
提前谢谢

最佳答案

您可以扩展sherlockfragment并自己处理mappview。这看起来像…

public class SherlockMapFragment extends SherlockFragment
{
private MapView mapView;

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);

    mapView = (MapView) getView().findViewById(R.id.my_map_id);
    mapView.onCreate(savedInstanceState);
}

@Override
public void onResume()
{
    super.onResume();
    mapView.onResume();
}

@Override
public void onPause()
{
    super.onPause();
    mapView.onPause();
}

@Override
public void onLowMemory()
{
    super.onLowMemory();
    mapView.onLowMemory();
}

@Override
public void onSaveInstanceState(Bundle outState)
{
    super.onSaveInstanceState(outState);
    mapView.onSaveInstanceState(outState);
}

@Override
public void onDestroy()
{
    super.onDestroy();
    mapView.onDestroy();
}
}

没有人说你绝对必须使用supportmappfragment。新api最酷的部分之一是能够将mappview用作普通视图。

关于android - 在选项卡式导航中将ActionBarSherlock与SupportMapFragment的子类一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13763996/

10-10 04:12