5

フラグメントを最初 (pageNews) から 2 番目 (pageViewFromWeb) に変更した後、「findFragmentById」が最初 (pageNews) フラグメントへの参照を返すのはなぜですか?

レイアウト:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:paddingTop="10dp"
    android:background="#000">

    <FrameLayout
        android:id="@+id/frgmCont"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#000000">
    </FrameLayout>

</RelativeLayout>

コード:

   fTrans = getSupportFragmentManager().beginTransaction();
   fTrans.add(R.id.frgmCont, pageNews);
   ....
   ....    
   public void selectNews(String news_id) {
   // Toast.makeText(this, news_id, Toast.LENGTH_SHORT).show();
    fTrans = getSupportFragmentManager().beginTransaction();
    fTrans.replace(R.id.frgmCont, pageViewFromWeb);
    fTrans.commit();
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.frgmCont);
    ...
}
4

1 に答える 1

3

その理由replace()は、すぐには実行されませんが、FragmentTransaction がスケジュールされているためです。フラグメントをfindFragmentById()置換した直後は、まだ置換されていません...

于 2013-09-05T16:02:53.787 に答える