【问题标题】:Hide status bar in only one fragment and display it on the others仅在一个片段中隐藏状态栏并在其他片段中显示
【发布时间】:2016-01-10 16:52:31
【问题描述】:

我的活动中有 3 个片段,我想通过隐藏状态栏使一个片段全屏显示。当我退出该片段时,状态栏应该重新出现。我该怎么做?

【问题讨论】:

    标签: android xml fragment statusbar


    【解决方案1】:

    在您的父活动中定义一个函数总是更好的,该函数将具有隐藏状态栏的代码,并在您的目标片段中调用该函数将隐藏该片段的状态栏,并且当您在其停止方法中退出片段时您可以再次显示状态栏。

    让这成为你在活动中的方法,

    public void hideStatusBar()
        {
         // your code depending upon what you have implemented
        }
    
     public void showStatusBar()
            {
             // your code depending upon what you have implemented
            }
    

    然后在片段简历上你可以像这样调用这个方法,

    ((ParentActivity)getActivity()).hideStatusBar();
    

    如果要为其他片段再次显示它,您可以覆盖片段的 onStop,

    ((ParentActivity)getActivity()).showStatusBar();
    

    【讨论】:

      【解决方案2】:

      访问https://developer.android.com/training/system-ui/status.htmlhttps://developer.android.com/training/system-ui/visibility.html

      清楚地解释了如何在不同的android版本中隐藏和显示状态栏。

      【讨论】:

        【解决方案3】:

        如果您想以编程方式清除使用 setSystemUiVisibility() 设置的标志,您可以执行以下操作:

        activity?.window?.decorView?.systemUiVisibility = 0
        

        https://developer.android.com/training/system-ui/dim

        【讨论】:

          【解决方案4】:

          Kotlin 版本的片段显示/隐藏状态栏

          override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
              super.onViewCreated(view, savedInstanceState)
          
              (activity as MainActivity).supportActionBar?.hide()
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-06
            • 1970-01-01
            • 2022-11-18
            • 2012-12-30
            • 1970-01-01
            • 2016-09-03
            • 1970-01-01
            相关资源
            最近更新 更多