我像这样添加第一个片段
            FragmentManager fm = SliderActivity.this
                    .getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            Fragment fragment = null;
            fragment = new HomeFragment();
            ft.add(R.id.content_fragment, fragment, "Home");
                ft.addToBackStack("Home");
                ft.commit();
Run Code Online (Sandbox Code Playgroud)
和第二个片段
            FragmentManager fm = SliderActivity.this
                    .getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            Fragment fragment = null;
            fragment = new HomeFragment();
            ft.add(R.id.content_fragment, fragment, "About");
            ft.addToBackStack("About");
            ft.commit();
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我按下AboutFragment(第二个)的按钮,然后如何调用HomeFragment的方法(第一个)
            onResume() is not fired which is creating problem
Run Code Online (Sandbox Code Playgroud)
    我发帖迟到,但我认为这对其他人有用
虽然我们使用add()Fragment事务,但onResume()不会在Source片段上调用.只有Destination片段才会获得onResume()回调
但是使用这种方式,我们可以实现onResume()对Source片段的回调:
在Host Activity中添加它 onBackPressed()
@Override
public void onBackPressed() {
    getSupportFragmentManager().getFragments()
                .get(getSupportFragmentManager().getBackStackEntryCount() - 1).onResume();
    super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
注:请确保您有人称addToBackStack()与commit()
此代码将onResume()回调Source片段
谢谢
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4657 次  |  
        
|   最近记录:  |