如何在android中保存片段状态?

编程入门 行业动态 更新时间:2024-10-18 06:11:10
本文介绍了如何在android中保存片段状态?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个HomeActivity来自我正在调用片段列表的地方。在HomeActivity中,我有加载所有片段的sidemenu。

现在,在这个列表中,我有一个名为HomeFragment的片段,它使用webservice向Google Map显示数据。 p>

我想要的是我只装载一次(第一次)碎片加载Map Dat,而不是每次单击sidemenu或从任何其他碎片进入时。 / p>

我的HomeFragment或任何其他片段一次加载,而不是每次加载。

你可以隐藏/显示片段。无需更换,删除。例如,我有2段FragmentFeed和FragmentNotification,我们可以隐藏/显示或添加片段。

处理点击菜单:

if(tabId.equals(AppConstants.FEED)){ pushFragments(tabId,getFragmentFeed()); } else if(tabId.equals(AppConstants.NOTIFICATION)){ pushFragments(tabId,getFragmentNotification()); }

处理显示/隐藏并添加片段:

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); } 片段fragmentFeed = manager.findFragmentByTag(TAG_FEED); 片段fragmentNoti = manager.findFragmentByTag(TAG_NOTIFICATION); //隐藏所有片段 if(fragmentFeed!= null){ ft.hide(fragmentFeed); } if(fragmentNoti!= null){ ft.hide(fragmentNoti); //显示当前的片段 if(tag == TAG_FEED){ if(fragmentFeed!= null){ ft.show($ fragmentFeed); if(tag == TAG_NOTIFICATION){ if(fragmentNoti!= null){ ft.show(fragmentNoti); } } ftmitAllowingStateLoss(); }

I have one HomeActivity from where I am calling the list of fragments. In HomeActivity I have sidemenu where all fragments are loaded.

Now,in this list i have one fragment called HomeFragment which display the Google Map with data, using webservice.

What i want is i want to load the Map dat only once(first time) fragment is loaded, not every time when click on sidemenu or come in from any other fragment.

My HomeFragment or any other fragments are loaded at once, not every time.

解决方案

You can hide/show fragment. No need to replace, remove. For ex, I have 2 fragments FragmentFeed and FragmentNotification, we can hide/show or add fragment.

Handle click menu:

if (tabId.equals(AppConstants.FEED)) { pushFragments(tabId, getFragmentFeed()); } else if (tabId.equals(AppConstants.NOTIFICATION)) { pushFragments(tabId, getFragmentNotification()); }

Handle show/hide and add fragment:

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); } } ftmitAllowingStateLoss(); }

更多推荐

如何在android中保存片段状态?

本文发布于:2023-10-08 01:24:43,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:片段   状态   如何在   android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!