我有一个带TabMenu的FragmentActivity。我的菜单打开一个DialogFragment,随后调用一个刷新TabMenu中第一个片段的方法,但是当我调用此方法时,第二个片段(第二个部分选项卡)将变为空白。我无法理解为什么。
这是片段及其刷新方法:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home_company, container, false);
......
observer = new HomeCompanyFragmentController(this, this.getActivity().getBaseContext());
return rootView;
}
public void refresh(){
FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
Fragment newFragment = this;
this.onDestroy();
ft.remove(this);
ft.replace(R.id.pager,newFragment);
ft.addToBackStack(null);
ft.commit();
}
我遵循了本教程:http://developer.android.com/training/implementing-navigation/lateral.html
这里我将返回我的片段:
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
if(homeFragment == null){
homeFragment = new HomeCompanyFragment();
}
return homeFragment;
}
答案 0 :(得分:0)
我不确定这是导致您出现问题的原因,但您绝对不应该从您尝试删除的片段执行片段事务。这个动作应该由托管这些片段的活动来处理,并且应该使用" listener"图案。尝试将该逻辑放入活动中,看看它是否有帮助。
此链接跳转到与活动进行通信的部分,但整个过程值得一读。
http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity