我编写了一个应用程序,它有一个Activity和一些Fragments,由ViewPager托管。我在MainActivity中初始化了一个工具栏,我可以从ViewPager中的每个页面访问它。有些页面需要工具栏,但有些页面不需要,因此我在其各自的onCreate()方法中以编程方式将可见性设置为GONE或VISIBLE。
问题在于,ViewPager将所有片段预加载到内存中,并依次调用其onCreate()方法。这会导致工具栏在启动应用程序时隐藏之前可见。
我该怎么做才能解决这个问题?
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState)
{
toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setVisibility(View.GONE);
}
Fragment1.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
((MainActivity)getActivity()).toolbar.setVisibility(View.GONE);
}
Fragment2.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
((MainActivity)getActivity()).toolbar.setVisibility(View.VISIBLE);
}