如何在我的活动之外创建一个不覆盖的片段?

时间:2016-01-26 11:31:55

标签: android android-layout android-fragments fragmentmanager

我将this navigation drawer library更改为mikepenz's material drawer library。因为第一个库在导入我想要使用的库时出错。但在第一个图书馆,我处理navigaiton抽屉项目点击如下:

 case 2 :

     FragmentManager mFragmentManager = getSupportFragmentManager();
     Fragment mFragment = new PM_Fragment().newInstance(mHelpLiveo.get(position).getName());

     if (mFragment != null){
         mFragmentManager.beginTransaction().replace(R.id.container, mFragment).commit();
     }

     break;

对于我的第二个图书馆,我收到了“R.id.container找不到”的错误。我猜容器id是在库内创建的。因为这个原因,我试图把id替换掉。所以我将activity_main布局的第一个ID设置如下:

case 2:
    mFragmentManager = getSupportFragmentManager();
    mFragment = new PM_Fragment().newInstance(String.valueOf(position));

    if (mFragment != null) {
        mFragmentManager.beginTransaction().replace(R.id.content_frame, mFragment).commit();
    }

    break;

我的R.id.content_frame来自我的activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<include
    android:id="@+id/toolbar1"
    layout="@layout/toolbar"/>

<TextView
    android:id="@+id/helloid"
    android:text="@string/hello_world" android:layout_width="wrap_content"
    android:layout_below="@id/toolbar1"
    android:layout_height="wrap_content"
    android:textSize="25dp"/>...

但是当我点击一个项目时,新的片段会写在我的activity_main.xml布局之上。这是我的截图:D

enter image description here

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我猜其中一个问题是你是在相对布局中插入片段,而帧布局更合适;我建议你使用导航视图和谷歌提供的抽屉布局Android小部件而不是第三方库,它真的很容易使用它们,如果你需要更多关于导航视图的信息以及如何使用它请告诉我或者参考官方文件

以下是google开发者页面的链接:

http://developer.android.com/reference/android/support/design/widget/NavigationView.html

答案 1 :(得分:1)

content_frame是您的主要活动布局的ID,这就是为什么它会发生使用新的相对布局并给它id id_frame