Я наконец нашел хороший способ сделать это.
В документации Android указано, что когда вам нужно обрабатывать изменения (ориентация, клавиатура ...) без воссоздания нового Activity, вы должны сделать это, переопределив метод onConfigurationChanged класса Activity. Вы должны указать модификации, которые вам нужны, в файле манифеста вашей деятельности.
Вы можете найти больше информации об этом здесь .
В моем случае мой манифест активности выглядит так:
<activity android:name=".MyActivity" android:configChanges="orientation"></activity>
И внутри своей активности MyActivity я добавил следующий метод:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int visibility = View.VISIBLE;
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
visibility = View.GONE;
}
getTabHost().getTabWidget().setVisibility(visibility);
}
со следующим макетом для моей Деятельности:
<?xml version="1.0" encoding="utf-8"?>
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</TabHost>
Таким образом, когда я скрываю / показываю панель tabWidget, VideoView (который добавляется к содержимому TabHost, изменяется, а когда я работаю в альбомной ориентации, у меня есть полноэкранный режим для просмотра фильма.
Надеюсь, это поможет некоторым из вас.