我正在制作视频播放器应用程序。当用户打开VideoPlayer活动时:我想在200毫秒后隐藏状态栏。我正在使用Handler。也可以触摸表面视图以隐藏/显示状态栏。
问题:第一次打开活动时,状态栏在200毫秒后消失,但是当用户与曲面视图交互以显示/隐藏状态栏时,然后在用户显示状态栏后它不会再次隐藏。
public class VideoPlayer extends AppCompatActivity implements SurfaceHolder.Callback{
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private boolean ISFULLSCREEN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
surfaceView =findViewById(R.id.surface);
surfaceHolder=surfaceView.getHolder();
surfaceHolder.addCallback(VideoPlayer.this);
surfaceView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ISFULLSCREEN) // if fullscreen true
{
exitFullScreen();
goFullScreen();
}
else
{
goFullScreen();
}
}
});
}
private void goFullScreen() //Hides statusbar and navigation bar after 200ms
{
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ISFULLSCREEN=true;
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions =
View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
decorView.setSystemUiVisibility(uiOptions);
}
}, 200);
}
private void exitFullScreen() // shows statusbar
{
ISFULLSCREEN=false;
View decorView = getWindow().getDecorView();
// Show Status Bar.
int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;
decorView.setSystemUiVisibility(uiOptions);
}
}
任何帮助将不胜感激