当前位置: 代码迷 >> java >> 使用RelativeLayout时出现意外的黑景
  详细解决方案

使用RelativeLayout时出现意外的黑景

热度:104   发布时间:2023-08-02 11:26:27.0

问题


我已经在RelativeLayout包装了SurfaceView和两个Button 但是,发生了未知的问题。

它创建一个黑色视图,该视图显示在屏幕截图中。 从最后开始, SurfaceViewSurfaceView停留在黑色视图的后面。

来源 :( 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

更新斯科特的评论 当我更改RelativeLayoutbackground颜色时,黑色视图将变为该颜色。 这意味着它是RelativeLayout的背景。 然后出现两个问题。

  • 为什么不填满整个高度?

  • 以及为什么SurfaceView从其包裹的布局的末尾开始?

[根据我们在您的问题评论中的聊天]

如果将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>
  相关解决方案