繁体   English   中英

使用操作栏标签交换片段

[英]Swaping Fragments with actionbar tabs

我的应用程序中有3个片段,分别分为3个标签[1] [2] [3]。

想象一下,我在片段[1]上使用了一个按钮,它将使带有初始文本“ X”的TextView变成“ Y”例如: tv.setText("I'm a new text");

因此,当我在选项卡之间导航并返回到选项卡[1]时,TextView将返回原始文本。 就像onCreate()再次被调用一样。

我希望以某种方式在片段中不调用onStop(),以便在选项卡之间进行交换时将视图的所有属性(例如文本,可见性等)保留在内存中。

谢谢!

---- 编辑! ----

好吧,我找到了想要的解决方案! 我声明很简单:

mPager = (ViewPager) findViewById(R.id.pager);
mPager.setOffscreenPageLimit(3); //Number of fragments that I wish to store in memory 

好吧,这是因为onCreate实际上被调用了。 如果我是你,我将使用ViewPager。 这样,只需将offScreenElementNumber设置为2,即可立即加载所有片段,它们将保留其状态!

看看这个:

http://tamsler.blogspot.com.es/2011/10/android-viewpager-and-fragments.html

再次调用onCreate方法。 您可以通过覆盖onSavedInstanceState来保存值,然后将其恢复为onActivityCreated方法。 例如,让我们保存布尔值(您可以保存所需的任何内容-字符串,整数等。):

保存值:

public void onSaveInstanceState(Bundle outState) {
        outState.putBoolean("booleanValue", true);
}

恢复值(您也可以在onCreate中调用它):

    protected void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
            if (savedInstanceState != null && savedInstanceState.containsKey("booleanValue")) {
                boolean myBoolean = savedInstanceState.getBoolean("booleanValue");
            }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM