android在片段中使用什么而不是onRestart()

问题描述 投票:0回答:5

我在app start的主片段中处理视图的.setVisibility()。所以我想要的是视图在应用程序启动时是不可见的(为此我在onCreateView中设置了INVISIBLE)并且当我在应用程序打开时从其他活动回到我的片段时可见:为此我尝试使用onRestart ()设置视图VISIBLE但它无法解析onRestart方法)onRestart已弃用或?谢谢

编辑:对于以下所有建议使用onResume(并给出-1)的答案,onResume根本不作为onRestart工作,原因是在onCreateView之后立即调用。

java android lifecycle oncreate
5个回答
15
投票

碎片没有onRestart()。它仅适用于活动。

请参阅下面的片段的生命周期

enter image description here

我想你正在寻找onResume()


使用布尔标志来检查是否要返回片段:

private boolean firstVisit;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
    //other stuff
    firstVisit = true;
}

@Override
public void onResume() {
    //other stuff
    if (firstVisit) {
        //do stuff for first visit only

        firstVisit = false;
    }
}

0
投票

如果要在返回片段时加载内容,可以使用onStart()onResume()


0
投票

您可以在活动上使用onRestart(),通过使用getFragmentManager().findFragmentById(R.id.your_fragment)使其在片段上调用您想要的任何方法。当一个片段重新启动时,它的底层活动重新启动,因此调用了它的onRestart()方法。


-1
投票

如果要检测片段何时再次可见,则需要使用onResume()回调方法


-1
投票

片段生命周期没有onRestart()方法。您可以根据您的要求使用onPause()onResume()

进一步阅读:Fragments

© www.soinside.com 2019 - 2024. All rights reserved.