Sum*_*iya 4 android fragment android-fragments residemenu
我有一个HomeActivity,我在那里调用片段列表.在HomeActivity中,我有sidemenu所有片段都被加载.
现在,在这个列表中,我有一个名为HomeFragment的片段,它使用webservice显示带有数据的Google Map.
我想要的是我只想加载一次(第一次)片段加载Map数据,而不是每次点击sidemenu或从任何其他片段进入.
我的HomeFragment或任何其他片段立即加载,而不是每次都加载.
你可以隐藏/显示片段.无需更换,删除.对于ex,我有2个片段FragmentFeed和FragmentNotification,我们可以隐藏/显示或添加片段.
处理点击菜单:
if (tabId.equals(AppConstants.FEED)) {
pushFragments(tabId, getFragmentFeed());
} else if (tabId.equals(AppConstants.NOTIFICATION)) {
pushFragments(tabId, getFragmentNotification());
}
Run Code Online (Sandbox Code Playgroud)
处理显示/隐藏并添加片段:
public void pushFragments(String tag, Fragment fragment) {
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
if (manager.findFragmentByTag(tag) == null) {
ft.add(R.id.realtabcontent, fragment, tag);
}
Fragment fragmentFeed = manager.findFragmentByTag(TAG_FEED);
Fragment fragmentNoti = manager.findFragmentByTag(TAG_NOTIFICATION);
// Hide all Fragment
if (fragmentFeed != null) {
ft.hide(fragmentFeed);
}
if (fragmentNoti != null) {
ft.hide(fragmentNoti);
}
// Show current Fragment
if (tag == TAG_FEED) {
if (fragmentFeed != null) {
ft.show(fragmentFeed);
}
}
if (tag == TAG_NOTIFICATION) {
if (fragmentNoti != null) {
ft.show(fragmentNoti);
}
}
ft.commitAllowingStateLoss();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2682 次 |
| 最近记录: |