- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个无法用应用程序的抽屉导航解决的问题。抽屉导航中的链接之一是打开 FragmentActivity(其中包含 ViewPager)。其他链接是 fragment 。现在我已将其设置为启动该 Activity 的 Intent ,但我收到有关我的 fragment 之一 MapsPage 的错误。与嵌套 fragment 有关。我将在下面发布 logcat。这就是我的 NavigationDrawer onClick 的设置:
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Fragment newFragment = new MapsPage();
FragmentManager fm = getSupportFragmentManager();
switch(i) {
case 0:
newFragment = new FragOne();
fm.popBackStack();
break;
case 1:
newFragment = new FragTwo();
fm.popBackStack();
break;
case 2:
newFragment = new FragThree();
fm.popBackStack();
break;
case 3:
Intent in = new Intent(getApplicationContext(), FragmentPagerActivity.class);
startActivity(in);
fm.popBackStack();
break;
}
fm.beginTransaction().add(R.id.main, newFragment).addToBackStack("fragback").commit();
drawerLayout.closeDrawer(rl);
}
我的问题是“情况 3:”。我的应用程序的核心 MapsPage 在 XML 中有一个 map fragment ,这会导致调用此 fragment 时出现异常。这是异常(exception)情况:
01-20 18:42:09.302: E/AndroidRuntime(15950): FATAL EXCEPTION: main
01-20 18:42:09.302: E/AndroidRuntime(15950): Process: com.android.package.name, PID: 15950
01-20 18:42:09.302: E/AndroidRuntime(15950): android.view.InflateException: Binary XML file line #7: Error inflating class fragment
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
01-20 18:42:09.302: E/AndroidRuntime(15950): at com.mdev.bluestorm.drinki.MapsPage.onCreateView(MapsPage.java:103)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.os.Handler.handleCallback(Handler.java:733)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.os.Handler.dispatchMessage(Handler.java:95)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.os.Looper.loop(Looper.java:136)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.app.ActivityThread.main(ActivityThread.java:5017)
01-20 18:42:09.302: E/AndroidRuntime(15950): at java.lang.reflect.Method.invokeNative(Native Method)
01-20 18:42:09.302: E/AndroidRuntime(15950): at java.lang.reflect.Method.invoke(Method.java:515)
01-20 18:42:09.302: E/AndroidRuntime(15950): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-20 18:42:09.302: E/AndroidRuntime(15950): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-20 18:42:09.302: E/AndroidRuntime(15950): at dalvik.system.NativeStart.main(Native Method)
01-20 18:42:09.302: E/AndroidRuntime(15950): Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Duplicate id 0x7f060060, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:296)
01-20 18:42:09.302: E/AndroidRuntime(15950): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
这是关键错误:
01-20 18:42:09.302: E/AndroidRuntime(15950): 引起原因:java.lang.IllegalArgumentException: 二进制 XML 文件第 #7 行:重复 id 0x7f060060、标记为 null 或父 id 0x0 com.google.android.gms.maps.SupportMapFragment 的另一个 fragment
我可以采取什么措施来防止这种情况发生吗?我需要能够从抽屉导航打开 FragmentActivity 而无需强制关闭,因为它与 Google map fragment 冲突。我需要 MapsPage 成为后台堆栈的一部分,实际上是唯一的一个,正如您所看到的,我正在弹出每个其他页面的后台堆栈。
我真的很感谢对此的一些帮助,我不知道下一步该做什么。提前致谢。
编辑:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
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"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>
最佳答案
您正在调用
fm.beginTransaction().add(R.id.main,newFragment).addToBackStack("fragback").commit();
在调用startActivity()
之后
关于java - 无法从抽屉导航中的 Fragment/FragmentActivity 打开 FragmentActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241963/
我遇到了一个无法用应用程序的抽屉导航解决的问题。抽屉导航中的链接之一是打开 FragmentActivity(其中包含 ViewPager)。其他链接是 fragment 。现在我已将其设置为启动该
除了使用 Intents 启动方法外,还有其他方法可以调用 FragmentActivity 中的方法吗?有人可以帮忙吗? 代码如下: class MainActiviy extends Ac
在我的应用程序中,它们不是 FragmentActivity.java,但崩溃报告给了我以下错误 Fatal Exception: android.content.ActivityNotFoundEx
我是 Java 和 Android 的初学者,我认为这更像是一个 Java 问题,因为它在 Android 中表现出来。 我正在使用 Android 支持包 (android.support.v4.a
我有两项 Activity : MainActivity,它扩展了 FragmentActivity 并具有 ViewActivity,它只是一个 Activity,以 MainActivity 作为
我对 FragmentActivity 类有疑问当我导入包时: import android.support.v4.app.FragmentActivity; 当我将其放入代码中时,导入 Fragme
今天我尝试创建一个带有 fragment Activity 的项目。我有一个 MainActivity 范围 FragmentActivity。 MainActvity 有布局。 activity_m
我在使用 FragmentActivity 和 SupportMapFragment 时遇到了一些问题。 map 的缩放比例很不稳定。这是代码: public class GoogleMapActiv
Activity 在导入 FragmentActivity 时显示错误。 import android.support.v4.app.FragmentActivity; import andr
我的代码中有一个具有 ListView 的 Activity ,我通过适配器类控制此 ListView 。每个 ListView 中都有一个 TextView,我想通过单击每个项目(TextView)
我正在尝试创建一个使用 fragment 的应用程序,但是当我尝试在 FragmentActivity 中显示一个 Fragment 时,操作栏没有出现。 fragment Activity 类: p
我可以使用下面的代码转换到 Fragment 类,但是如何使用相同的代码转换到 FragmentActivity。 FragmentActivity activity = new ABC(); //
您好,您可以在这里查看我的代码。我的问题是:使用这段代码,我的 EditText 和我的 Button 字段为空,所以我无法对它们执行任何操作。 请你帮我访问这个按钮。对于由 eclipse 自动生成
我尝试将 Android 兼容性库(或现在称为支持库)v4 用于 pre-honeycomb android 设备。我明白,我应该使用 FragmentActivity 类,而不是使用 Fragmen
我的主题不工作我已经看到了这个How do I change the background color of the ActionBar of an ActionBarActivity using X
您好,我正在尝试将 Intent 传递给 FragmentActivity,但它不起作用。 Activity 在 FragmentActivity 的初始化中关闭。这是 Activity : publ
在我的应用程序中,我有选项卡,但现在我需要添加 Sherlock Actionbar 我知道我需要使用 extends SherlockActivity 但早期我有 FragmentActivity
我正在尝试将 ActionBar 按钮添加到 FragmentActivity,但我无法弄清楚我做错了什么。运行应用程序时,我看到的只是 ActionBar 上的默认菜单按钮,而不是我的按钮。 fra
我正在扩展类中的 FragmentActivity,该类用作我的其他 Activity 的基础 Activity 。我的问题是当我从我的基本 Activity 扩展我的其他 Activity 时,我失
我正在使用 android 示例,FragmentTabs . 比如说,有 4 个选项卡(A、B、C、D)。我使用此代码将选项卡 fragment (A) 替换为另一个 (E) FragmentTra
我是一名优秀的程序员,十分优秀!