Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图片段覆盖了另一个片段_Android_Google Maps_Google Maps Android Api 2 - Fatal编程技术网

Android 谷歌地图片段覆盖了另一个片段

Android 谷歌地图片段覆盖了另一个片段,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,基于“我的应用”实现了谷歌地图V2。问题是,我有一个基于片段的菜单(如果我拼错了这个概念,很抱歉),它在很短的时间内就被谷歌地图片段覆盖了 有没有可能让谷歌地图片段留在菜单片段的后面 地图代码: public class AdMapFragment extends Fragment { MapView mMapView; private GoogleMap googleMap; @Override public View onCreateView(LayoutInflater inflate

基于“我的应用”实现了谷歌地图V2。问题是,我有一个基于片段的菜单(如果我拼错了这个概念,很抱歉),它在很短的时间内就被谷歌地图片段覆盖了

有没有可能让谷歌地图片段留在菜单片段的后面

地图代码:

public class AdMapFragment extends Fragment
{

MapView mMapView;
private GoogleMap googleMap;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // inflat and return the layout
    View v = inflater.inflate(R.layout.activity_ad_map, container,
            false);
    mMapView = (MapView) v.findViewById(R.id.mapView);
    mMapView.onCreate(savedInstanceState);

    mMapView.onResume();// needed to get the map to display immediately

    try {
        MapsInitializer.initialize(getActivity().getApplicationContext());
    } catch (Exception e) {
        e.printStackTrace();
    }

    googleMap = mMapView.getMap();
    // latitude and longitude
    double latitude = 17.385044;
    double longitude = 78.486671;

    // create marker
    MarkerOptions marker = new MarkerOptions().position(
            new LatLng(latitude, longitude)).title("Hello Maps");

    // Changing marker icon
    marker.icon(BitmapDescriptorFactory
            .defaultMarker(BitmapDescriptorFactory.HUE_ROSE));

    // adding marker
    googleMap.addMarker(marker);
    CameraPosition cameraPosition = new CameraPosition.Builder()
            .target(new LatLng(17.385044, 78.486671)).zoom(12).build();
    googleMap.animateCamera(CameraUpdateFactory
            .newCameraPosition(cameraPosition));

    return v;
}

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

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

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

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

}
我让活动以这种方式工作-它们只是扩展了
MenuActivity
,因此菜单只有一个中心活动。活动代码

public class AdMapActivity extends MenuActivity
{
}
MenuActivity
引用调用方类并聚合请求。菜单代码

public class MenuActivity extends Activity
{

private DrawerLayout menuLayout;
private ListView menuList;
private ActionBarDrawerToggle menuToggle;
private ArrayList<MenuListItem> menuItems;
private MenuListItemAdapter menuAdapter;

private ArrayList<BasicNameValuePair> fragmentsMenu;
private ArrayList<String> fragmentsMenuClass;
private ArrayList<String> fragmentsMenuName;
private ArrayList<Integer> fragmentsMenuIcon;
private HashMap<String, String> fragmentsIndividual;

private void displayView(int position)
{
    String className = fragmentsMenuClass.get(position);

    try
    {
        Fragment fragment = (Fragment) Class.forName(getPackageName() + '.' + className.substring(0, className.length() - 8) + "Fragment").newInstance();

        if (fragment != null)
        {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();

            menuList.setItemChecked(position, true);
            menuList.setSelection(position);
            menuLayout.closeDrawer(menuList);
        }
    }
    catch (Exception e)
    {
        Log.e("error", Log.getStackTraceString(e));
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_list);

    fragmentsMenuClass = new ArrayList<String>();
    fragmentsMenuClass.add("AdListActivity");
    fragmentsMenuClass.add("BlogListActivity");
    fragmentsMenuClass.add("InterestListActivity");
    fragmentsMenuClass.add("BrandListActivity");
    fragmentsMenuClass.add("ProfileActivity");
    fragmentsMenuClass.add("PaymentsActivity");
    fragmentsMenuClass.add("AdMapActivity");
    fragmentsMenuClass.add("ContactsActivity");

    fragmentsMenuName = new ArrayList<String>();
    fragmentsMenuName.add(getString(R.string.menu_item_ad_list));
    fragmentsMenuName.add(getString(R.string.menu_item_blog_list));
    fragmentsMenuName.add(getString(R.string.menu_item_interest_list));
    fragmentsMenuName.add(getString(R.string.menu_item_brand_list));
    fragmentsMenuName.add(getString(R.string.menu_item_profile));
    fragmentsMenuName.add(getString(R.string.menu_item_payments));
    fragmentsMenuName.add(getString(R.string.menu_item_ad_map));
    fragmentsMenuName.add(getString(R.string.menu_item_contacts));

    fragmentsMenuIcon = new ArrayList<Integer>();
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);
    fragmentsMenuIcon.add(R.drawable.global_button_like_image);

    fragmentsMenu = new ArrayList<>();

    menuItems = new ArrayList<>();

    for (int i = 0; i < fragmentsMenuClass.size(); i++)
    {
        menuItems.add(new MenuListItem(String.valueOf(fragmentsMenuName.get(i)), (Integer) fragmentsMenuIcon.get(i)));
    }

    menuList = (ListView) findViewById(R.id.menu_list);

    menuList.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            displayView(position);
        }
    });

    menuAdapter = new MenuListItemAdapter(getApplicationContext(), menuItems);

    menuList.setAdapter(menuAdapter);

    menuLayout = (DrawerLayout) findViewById(R.id.menu_layout);

    menuToggle = new ActionBarDrawerToggle(this, menuLayout, R.drawable.global_button_like_image, R.string.app_name, R.string.app_name)
    {
        public void onDrawerClosed(View view)
        {
            invalidateOptionsMenu();
        }

        public void onDrawerOpened(View drawerView)
        {
            invalidateOptionsMenu();
        }
    };

    menuLayout.setDrawerListener(menuToggle);

    final String className = getClass().getSimpleName();

    if (savedInstanceState == null)
    {
        if (fragmentsMenuClass.contains(className))
        {
            displayView(0);
        }
        else
        {
            try
            {
                Fragment fragment = (Fragment) Class.forName(getPackageName() + '.' + className.substring(0, className.length() - 8) + "Fragment").newInstance();

                FragmentManager fragmentManager = getFragmentManager();
                fragment.getView().bringToFront();
                fragmentManager.beginTransaction().add(R.id.frame_container, fragment).commit(); //replace -> add
            }
            catch (Exception e)
            {
                Log.e("error", Log.getStackTraceString(e));
            }
        }
    }
}

}
公共类菜单活动扩展活动
{
私人抽屉布局菜单;
私有列表视图菜单列表;
私人行动BarDrawerToggle菜单切换;
私有ArrayList菜单项;
私有菜单匹配器菜单匹配器;
私有ArrayList碎片菜单;
私有ArrayList碎片类;
私有ArrayList片段名称;
私有数组列表碎片;
私有HashMap片段单个;
私有void显示视图(内部位置)
{
String className=fragmentsMenuClass.get(位置);
尝试
{
Fragment Fragment=(Fragment)Class.forName(getPackageName()+'.+className.substring(0,className.length()-8)+“Fragment”).newInstance();
if(片段!=null)
{
FragmentManager FragmentManager=getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_容器,fragment.commit();
menuList.setItemChecked(位置,true);
选举(职位)候选人;
menuLayout.closeDrawer(菜单列表);
}
}
捕获(例外e)
{
Log.e(“错误”,Log.getStackTraceString(e));
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单)
{
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单,菜单);
返回super.onCreateOptions菜单(菜单);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u菜单\u列表);
fragmentsMenuClass=新的ArrayList();
fragmentsMenuClass.add(“AdListActivity”);
fragmentsMenuClass.add(“BlogListActivity”);
fragmentsMenuClass.add(“兴趣持久性”);
fragmentsMenuClass.add(“BrandListActivity”);
fragmentsMenuClass.add(“ProfileActivity”);
fragmentsMenuClass.add(“PaymentsActivity”);
fragmentsMenuClass.add(“AdMapActivity”);
fragmentsMenuClass.add(“ContactsActivity”);
fragmentsMenuName=新的ArrayList();
添加(getString(R.string.menu\u item\u ad\u list));
添加(getString(R.string.menu_item_blog_list));
添加(getString(R.string.menu\u item\u interest\u list));
添加(getString(R.string.menu\u item\u brand\u list));
fragmentsMenuName.add(getString(R.string.menu\u item\u profile));
fragmentsMenuName.add(getString(R.string.menu\u item\u payments));
添加(getString(R.string.menu\u item\u ad\u map));
fragmentsMenuName.add(getString(R.string.menu\u item\u contacts));
fragmentsMenuIcon=新的ArrayList();
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenuIcon.add(R.drawable.global按钮类似于图片);
fragmentsMenu=新的ArrayList();
menuItems=newarraylist();
对于(int i=0;i添加
}
捕获(例外e)
{
Log.e(“错误”,Log.getStackTraceString(e));
}
}
}
}
}
菜单布局

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<ListView
    android:id="@+id/menu_list"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@color/adListItemGray"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/menu_list_item_selector"
    android:background="#FFF"/>

</android.support.v4.widget.DrawerLayout>

正如我们上面所讨论的,
添加
框架布局解决了这个问题


有关更多详细信息,请参阅

您提供的代码是基本的,遇到问题时请提供屏幕截图好吗?对于片段覆盖,您也可以参考@bjiang sorry,无法提供任何屏幕。补充