sha*_*ess 19 android android-tabhost android-fragments fragment-tab-host android-nested-fragment
我在使用tabhost更改视图时遇到问题 - 当我选择一个选项卡时,内容保持空白.
据我所知,onCreateView
没有被称为儿童碎片.onMenuCreate
运行正常,因为菜单改变了它应该.
public class PatientTabFragment extends Fragment {
private FragmentTabHost mTabHost;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager());
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Info"),
NewPatientFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Notes"),
NoteListFragment.class, null);
return mTabHost;
}
@Override
public void onDestroyView() {
super.onDestroyView();
mTabHost = null;
}
}
Run Code Online (Sandbox Code Playgroud)
根据文件:
特殊的TabHost,允许使用Fragment对象作为其选项卡内容.将此放置在视图层次结构中时,在对层次结构进行充气后,必须调用setup(Context,FragmentManager,int)以完成选项卡主机的初始化.
(强调我的)
所以我建议像这样:
public class PatientTabFragment extends Fragment {
private FragmentTabHost mTabHost;
private boolean createdTab = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager());
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Info"),
NewPatientFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Notes"),
NoteListFragment.class, null);
return mTabHost;
}
public void onResume(){
if (!createdTab){
createdTab = true;
mTabHost.setup(getActivity(), getActivity().
getSupportedFragmentManager());
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
mTabHost = null;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7752 次 |
最近记录: |