Android VideoView 隐藏布局元素
Android VideoView hides Layout Elements
我有以下布局(缩减为最小示例)
<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(它附加了一个拖动侦听器),它会在屏幕的某个点消失,如您在此屏幕截图中所见。
问题似乎只有在我有 VideoView 时才会出现。即使我不显示视频。
当我用例如替换它时一个ImageView完全没有问题
所以我的问题是,这是怎么回事,我该如何解决?
感谢您的宝贵时间!
更新 1:只有 VideoView 有
android:layout_height="match_parent"
当我将其设置为某个 "dp" 值时,一切正常...
我没有找到解决问题的方法,但我找到了解决方法:
布局完成后,我从父容器中获取高度,减去 1px 并将其设置为视频视图的新高度。
1px 几乎看不见...
代码如下:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
ViewGroup.LayoutParams layoutParams = videoView.getLayoutParams();
layoutParams.height = parentView.getHeight() - 1;
videoView.setLayoutParams(layoutParams);
}
我有以下布局(缩减为最小示例)
<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(它附加了一个拖动侦听器),它会在屏幕的某个点消失,如您在此屏幕截图中所见。
问题似乎只有在我有 VideoView 时才会出现。即使我不显示视频。 当我用例如替换它时一个ImageView完全没有问题
所以我的问题是,这是怎么回事,我该如何解决?
感谢您的宝贵时间!
更新 1:只有 VideoView 有
android:layout_height="match_parent"
当我将其设置为某个 "dp" 值时,一切正常...
我没有找到解决问题的方法,但我找到了解决方法: 布局完成后,我从父容器中获取高度,减去 1px 并将其设置为视频视图的新高度。 1px 几乎看不见...
代码如下:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
ViewGroup.LayoutParams layoutParams = videoView.getLayoutParams();
layoutParams.height = parentView.getHeight() - 1;
videoView.setLayoutParams(layoutParams);
}