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

时间:2016-01-27 14:04:37

标签: java android lifecycle oncreate

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

编辑:对于以下所有建议使用onResume(并且给出了-1)的答案,onResume根本不能用作onRestart,原因是在onCreateView之后调用。< / p>

5 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

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

答案 4 :(得分:-1)

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

进一步阅读:Fragments