Android VideoView隐藏了布局元素

时间:2016-04-04 21:58:34

标签: java android xml layout android-videoview

我有以下布局(缩减为最小的例子)

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/free_text_default_bg"
        android:gravity="center_horizontal"
        android:padding="@dimen/free_text_padding"
        android:text="background element is a video view" />

</RelativeLayout>

问题是,如果我移动EditText(它附有一个拖动侦听器),它会在屏幕的某个位置消失,正如您在此屏幕截图中看到的那样。

enter image description here

问题似乎只出现在我有VideoView时。即使我没有显示视频。 当我用例如一个ImageView完全没有问题。

所以我的问题是,发生了什么以及如何解决这个问题?

谢谢你的时间!

更新1:仅当VideoView具有

时才会发生这种情况
android:layout_height="match_parent"

当我将它设置为某个“dp”值时,一切正常......

1 个答案:

答案 0 :(得分:0)

我没有找到问号喷气机的解决方案,但我找到了一个解决方法: 布局完成后,我从父容器中获取高度,减去1px并将其设置为视频视图的新高度。 1px几乎看不到......

以下是代码:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    ViewGroup.LayoutParams layoutParams = videoView.getLayoutParams();
    layoutParams.height = parentView.getHeight() - 1;
    videoView.setLayoutParams(layoutParams);
}