问题描述
问题
我已经在
RelativeLayout
包装了SurfaceView
和两个Button
。
但是,发生了未知的问题。
它创建一个黑色视图,该视图显示在屏幕截图中。
从最后开始, SurfaceView
或SurfaceView
停留在黑色视图的后面。
来源 :( surface_look.xml )
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <SurfaceView android:id="@+id/mainSurface" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:translationZ="15dp"/> <Button android:id="@+id/surface_up" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="?" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_margin="10dp"/> <Button android:id="@+id/surface_down" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="?" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_margin="10dp"/> </RelativeLayout>
结果 ( MainActivity )
更新斯科特的评论
当我更改RelativeLayout
的background
颜色时,黑色视图将变为该颜色。
这意味着它是RelativeLayout
的背景。
然后出现两个问题。
为什么不填满整个高度?
以及为什么
SurfaceView
从其包裹的布局的末尾开始?
1楼
[根据我们在您的问题评论中的聊天]
如果将ConstraintLayout
用作根视图,则这是surface_look.xml
布局文件的外观。
尝试一下,看看它是否可以解决使用RelativeLayout
时遇到的定位问题。
注意:您必须包括约束布局依赖关系才能在代码中使用它。
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- let the constraints of the surface view determine it's width and height -->
<SurfaceView
android:id="@+id/mainSurface"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:translationZ="15dp"/>
<Button
android:id="@+id/surface_up"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="?"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_margin="10dp"/>
<Button
android:id="@+id/surface_down"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="?"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_margin="10dp"/>
</android.support.constraint.ConstraintLayout>