gpt4 book ai didi

android - 切换 android map fragment -- 崩溃

转载 作者:太空狗 更新时间:2023-10-29 15:03:54 26 4
gpt4 key购买 nike

在我的应用程序中,我有两个选项卡( map 和附近)。两个 fragment 都在使用 map fragment 。

这是我的 map.xml

<RelativeLayout
android:id="@+id/countryLayout"
android:layout_below="@id/partnersLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/mainFooterLayout">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>

</FrameLayout>

</RelativeLayout>

这是我膨胀的代码

 View view = inflater.inflate(R.layout.map, container, false);

在 NearbyFragment 和 MyMapFragment 中我调用了

 public void onDestroyView() {
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}

但我的应用程序仍然崩溃了

我有这个异常(exception)

Caused by: java.lang.IllegalArgumentException: Binary XML file line #42: Duplicate id 0x7f0600b5, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment

谁能告诉我这里出了什么问题?

我可以使用 MapFragment 而不是 SupportMapFragment 吗?

谢谢

最佳答案

看看你应该做什么:

1) 定义 Activity 布局:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

2) 为您的列表式寻呼机创建适配器:

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.support.v13.app.FragmentPagerAdapter;

public class SectionsPagerAdapter extends FragmentPagerAdapter {

List<Fragment> mValues = new ArrayList<Fragment>();

public SectionsPagerAdapter(FragmentManager fm) {
super(fm);

// HERE YOU ADD INSTANCES OF FRAGMENTS WHAT YOU NEED
mValues.add(new com.google.android.gms.maps.MapFragment());
mValues.add(new com.google.android.gms.maps.MapFragment());
}

@Override
public Fragment getItem(int position) {
return PlaceholderFragment.newInstance(position + 1);
}

@Override
public int getCount() {
return 2;
}

@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Map";
case 1:
return "Nearby";
}
return null;
}
}

3) 使用标签创建主要 Activity

import android.app.ActionBar;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.view.ViewPager;

public class MainActivity extends Activity implements ActionBar.TabListener {

SectionsPagerAdapter mSectionsPagerAdapter;

ViewPager mViewPager;

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

final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());

mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);

mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});

for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab().setText(mSectionsPagerAdapter.getPageTitle(i)).setTabListener(this));
}
}

@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}

@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}

}

在 Adapter 内部,你必须创建 fragmnets 的实例,你需要像标签一样放置在你的 Activity 中

附言对不起我的英语和打字错误

关于android - 切换 android map fragment -- 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23778136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com