为什么BackStack返回的Fragment没有变化

Why does Fragment returned from BackStack do not have changes

FrameLayout 有一个Activity。

我需要:

1.add(替换)Activity

中的片段 A

2.add fragmet A中ImageView中的图片(按钮点击的例子)

3.replace 在容器片段 A 到片段 B

4.if 我在设备上按下“返回”按钮,我会看到没有图像的片段 A(以及其他更改)

我用这段代码替换片段

 FragmentManager fragmentManager = getSupportFragmentManager ();
 FragmentTransaction transaction = fragmentManager.beginTransaction ();
 transaction.replace (R.id.container, fragmentB, tag) .addToBackStack (null) .commit ();

在Activity中有一个代码:

 @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            FragmentManager manager = getSupportFragmentManager();
            int count = manager.getBackStackEntryCount();

            if(count==0) {
                super.onBackPressed();
            }else{
                manager.popBackStack();
            }
        }
    }

如果你用两个活动做同样的事情——没有问题。按下“后退”按钮后屏幕上存在图像。

我做错了什么?

好吧,就把这个 在 onCreate() //Host Activity

里面
fragment = new fragmentA();
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.framelayout, fragment);

        fragmentTransaction.commit();

//现在当你返回时,你可以看到你的形象!缺少

试试下面的代码:

首先创建 View class 的全局对象,然后定义视图如下:

private View view;

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

        // Check view already created or not 
        if(view==null)    
          view = inflater.inflate(R.layout.article_view, container, false);

        return view; 
    }