Android找到当前片段

时间:2016-06-16 09:58:12

标签: android android-fragments

我有4个用作片段的java类:`F1,F2,F3,F4。 当我想从一个切换到另一个时,我使用这个代码:

android.app.FragmentManager FM = getFragmentManager();
        FragmentTransaction FT = FM.beginTransaction();
        F1 FP = new F1();
        FT.add(R.id.where, FP,"F1");
        FT.commit();
        FM.executePendingTransactions();

如果我希望能够从其中一个返回到上一个,我添加addToBackStack(TAG)如下:

android.app.FragmentManager FM = getFragmentManager();
        FragmentTransaction FT = FM.beginTransaction();
        F1 FP = new F1();
        FT.add(R.id.where, FP,"F1");
        FT.addToBackStack("F1");
        FT.commit();
        FM.executePendingTransactions();

我只有一个活动可以显示当前显示的片段。 我会从中得到,显示当前片段。 我试着写这个,但now总是空的。

Fragment now=getSupportFragmentManager().findFragmentByTag("F1");
if(now!=null && now.isVisible()) {
//some code for the current fragment
}

1 个答案:

答案 0 :(得分:6)

试试这可能会对你有所帮助

 Fragment currentFragment = getFragmentManager().findFragmentById(R.id.where);
 if (currentFragment instanceof F1) {
       //do your stuff here
 }