FragmentTransaction之后的IllegalArgumentException

时间:2014-01-30 11:24:55

标签: android android-fragments

我是Android开发的初学者,我在做第一个应用时遇到了一些麻烦。我使用包含5个片段的视图寻呼机。第5个片段允许用户管理他的帐户,当用户使用第5个片段登录时,片段3和4必须更改。

因此,当用户登录时,我要求第5个片段执行片段3和4所需的事务。但是当我这样做时,我得到了IllegalArgumentException:

java.lang.IllegalArgumentException: No view found for id 0x7f0b0045 (com.tchatannonce:id/layNotLogged) for fragment AddOffersFragment{44b0be88 #4 id=0x7f0b0045}

以下是我用来执行交易的代码:

frag3与新Frag之间的交易:

AddOffersFragment newFrag = new AddOffersFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.layNotLogged, newFrag);
transaction.commit();

frag4与新Frag2之间的交易:

MyOffersFragment newFrag2 = new MyOffersFragment();
FragmentTransaction transaction2 = getFragmentManager().beginTransaction();
transaction2.replace(R.id.layNotLogged2, newFrag2);
transaction2.commit();

Frag3中使用了xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layNotLogged"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/border_radius"
        android:padding="10dp" >

        <TextView
            android:id="@+id/txv_mustBeLogged"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Vous devez être connecté(e) pour\naccéder à cette fonction"
            android:textSize="20dp" />

        <Button
            android:id="@+id/btn_goToLogIn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/txv_mustBeLogged"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:background="@drawable/round_button"
            android:gravity="center"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:text="Se Connecter"
            android:textColor="@android:color/white" />
    </RelativeLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我认为你的问题是当你在片段5时,片段3不存在。

尝试在viewpager初始化中执行以下操作

viewPager.setOffscreenPageLimit(3)

,此功能的文档是

  

设置在空闲状态下视图层次结构中应保留到当前页面任一侧的页数。

希望这会有所帮助:)