我有一个隐藏在导航栏(ICS上的软导航键)后面的mediacontroller的问题.首先是OK(第一张图片),但是当第一次隐藏导航栏时,Mediacontroller会调整大小以适应屏幕(正确),但是当导航栏再次出现时(第二张照片)不会调整大小.此外,广告被移动(隐藏屏幕截图).
如果我理解文档正确,系统Windows应负责调整大小.但它不工作
我怎样才能做到这一点?感谢任何帮助.
我在Galaxy Nexus上进行测试.
XML布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/playerLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animateLayoutChanges="true" android:background="@color/black" > <mynamespace.BKDVideoView android:id="@+id/videoview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> <mynamespace.SubtitleTextView android:id="@+id/subtitleText" style="@style/SubtitleOverlayText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="30dp" android:gravity="center" android:visibility="gone" android:fitsSystemWindows="true" android:animateLayoutChanges="true"/> <FrameLayout android:id="@+id/adLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top|right" android:fitsSystemWindows="true" android:animateLayoutChanges="true"/> <FrameLayout android:id="@+id/videoMediaControllerHolder" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:animateLayoutChanges="true"/>
BKDVideoView是通过一些自定义功能从VideoView的GrepCode复制的.我对MediaController做了同样的事情.
在MediaController中,我打电话叫:
int newVis = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_STABLE; if (!visible) { newVis |= SYSTEM_UI_FLAG_LOW_PROFILE | SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION; } // msystemUIHolder -> FrameLayout (playerLayout) msystemUIHolder.setsystemUIVisibility(newVis);
更新:如果您有同样的问题,请在可接受的答案中查看评论.对于需要全屏使用sammyboy代码的视图.感谢两者.对不起,我需要太多的时间来弄清楚,不能给你点:(