我有以下布局(缩减为最小的例子)
<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”值时,一切正常......
答案 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);
}