【发布时间】:2012-11-05 17:49:52
【问题描述】:
我遇到了隐藏在导航栏后面的媒体控制器问题(ICS 上的软导航键)。起初是好的(第一张图片),但是当导航栏第一次隐藏时,媒体控制器调整大小以适应屏幕(正确),但当导航栏再次出现时(第二张图片)没有调整大小。广告也被移到后面(屏幕截图隐藏)。
如果我理解文档正确,fitsSystemWindows 应该负责调整大小。但它不起作用。
我该怎么做?感谢您的帮助。
我正在 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 代码。感谢双方。抱歉,我需要太多时间来解决这个问题,无法给你积分:(
【问题讨论】:
-
你是如何准备像上面这样的视频屏幕的。你能指导我构建一个像上面这样的媒体控制器吗?
-
正如我上面所说,它是一个自定义的 VideoView 和 MediaController。然后我有一个 FrameLayout,它是透明的和全屏的,并且包含另外两个视图,顶部和底部,它们具有固定大小并位于顶部(layout_gravity=top)和底部。没什么特别的:)
-
你能发布你的源代码吗?这对我很有帮助。
-
你是如何管理切换屏幕的。
标签: android fullscreen android-videoview