用户手动向上滚动导航栏后如何再次隐藏呢?

时间:2020-05-04 10:33:11

标签: android android-immersive android-navigation-bar

在我的应用程序中的某个活动中,由于该活动是全屏的,所以我隐藏了导航栏。要隐藏导航栏,我使用以下代码:

func fieldsToInt ( fieldNameArray : [String] ) -> [Int] {
   var returnArray = [Int]()
   for fNA in fieldNameArray {
      let n = Int ( results.int(forColumn: fNA) )
      returnArray.append( n )
    }
   return returnArray;
}

func fieldsToDouble ( fieldNameArray : [String] ) -> [Double] {
   var returnArray = [Double]()
   for fNA in fieldNameArray {
   let n = Double ( results.int(forColumn: fNA) )
      returnArray.append( n )
   }
   return returnArray;
}

此代码在用户向上滑动导航栏之前无法正常工作。然后,它呆在那里。我想要的是它在2秒钟左右后再次隐藏。有没有办法做到这一点?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

private FullScreenListener fullScreenListener = new FullScreenListener();
private void initUiFlags() {
    int flags = View.SYSTEM_UI_FLAG_VISIBLE;

    flags |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;

    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(flags);
    decorView.setOnSystemUiVisibilityChangeListener(fullScreenListener);
}