Как скрыть панель действий и сделать видео в полноэкранном режиме

Я пытаюсь сделать видео плеер. Моя проблема в том, что когда ориентация изменилась, videoView не умещается на весь экран, и моя панель действий не скрывается...

вот мой код

RowClick.java

public class RowClick extends AppCompatActivity {
VideoView videoView;
MediaController mediaController;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        OrientationEventListener orientationEventListener = new OrientationEventListener(this) {
            @Override
            public void onOrientationChanged(int orientation) {
                if (orientation == Configuration.ORIENTATION_PORTRAIT) {
                    getSupportActionBar().show();
                } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
                    getSupportActionBar().hide();
                }
            }
        };

        if (orientationEventListener.canDetectOrientation()) {
            orientationEventListener.enable();
        }

        setContentView(R.layout.activity_row_click);
        videoView = findViewById(R.id.video);
        mediaController = new MediaController(this);
        StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("video/-L8Vf_Xa6PBhyqbEzlif");
        storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                videoView.setVideoURI(uri);
                videoView.requestFocus();

            }
        });

        mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);
        videoView.start();
    }
}

activity_row_click.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/layout"
    tools:context="com.mgb.sdakaraoke.RowClick">

    <VideoView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/video"
        />

</RelativeLayout>

AndroidManifest.xml

 <activity
            android:name=".RowClick"
            android:configChanges="orientation|screenSize">
        </activity>

Моя цель состоит в том, чтобы, когда ориентация равна ландшафту, панель действий должна быть скрыта, и видеовидение должно быть установлено на полный экран.

Пожалуйста, помогите мне, как достичь этой цели.

Вот скриншот режима Lanscape, который нужно изменить в соответствии с моей целью.

пейзаж

2 ответа

Решение

Добавьте это в вашем styles.xml

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>

примените его к своей деятельности в манифесте:

<activity
        android:name=".RowClick"
        android:theme="@style/AppTheme.NoActionBar"
        android:configChanges="orientation|screenSize">
</activity>

это также просвечивает вашу строку состояния.

Вы также можете попробовать ниже в вашем коде файла Java.

@Override
public void onConfigurationChanged(Configuration newConfig) {
 super.onConfigurationChanged(newConfig);
 if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
      getActionBar().hide();
 } else {
      getActionBar().show();
 }
}

или же

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
else {
  getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

В манифесте у вас будет что-то вроде этого под тегом активности:

android:theme="@style/AppTheme.NoActionBar"

Это удаляет панель действий. Что касается полного экрана на ландшафте, попробуйте это здесь: ответ от другого пользователя