有一个FrameLayout的活动。
我需要:
1.在活动中添加(替换)片段A
2.在Fragmet中的ImageView中添加图片(按钮onclick上的示例)
3.替换容器片段A到片段B
4.如果我按下按钮返回设备,我将看到片段A没有图像(和其他更改)
我用这段代码替换片段
FragmentManager fragmentManager = getSupportFragmentManager ();
FragmentTransaction transaction = fragmentManager.beginTransaction ();
transaction.replace (R.id.container, fragmentB, tag) .addToBackStack (null) .commit ();
在活动中有一个代码:
@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();
}
}
}
如果你用两个活动做同样的事情 - 没有问题。按下后退按钮后,屏幕上显示图像。
我做错了什么?
答案 0 :(得分:0)
好吧,就这样说吧 在onCreate()// Host Activity
中fragment = new fragmentA();
fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.framelayout, fragment);
fragmentTransaction.commit();
//现在你回来按,你可以看到你的形象!缺少
答案 1 :(得分:0)
尝试以下代码:
首先创建View
类的全局对象,然后定义如下视图:
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;
}