为什么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;
}
FrameLayout 有一个Activity。
我需要:
1.add(替换)Activity
中的片段 A2.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;
}