在运行时更改工具栏的可见性看起来很糟糕

时间:2016-07-07 06:06:46

标签: java android android-fragments android-viewpager android-toolbar

我编写了一个应用程序,它有一个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);
}

0 个答案:

没有答案