我正在尝试将一个布局放在另一个布局之上。我能做到,但案件有问题。让我先描述一下: 这是我的布局代码:
<RelativeLayout>
<LinearLayout
android:id="@+id/smallVideoRenderLayoutOutgoing"
android:layout_width="120dp"
android:layout_height="170dp"
android:orientation="vertical"/>
<LinearLayout
android:id="@+id/largeVideoRenderLayoutOutgoing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
</RelativeLayout>
还有其他的东西,但这里没有必要。如果我用这两个视图运行代码工作正常。但是,如果我为&#34; smallVideoRenderLayoutOutgoing&#34;设置了可见性(GONE)。在我的Activity上的onCreate()或onResume()方法中。它根本不显示。虽然我可以看到那个&#34; smallVideoRenderLayoutOutgoing&#34;在我的程序上它显示它是可见的但我不能在我的屏幕上看到它。我认为它与&#34; largeVideoRenderLayoutOutgoing&#34;重叠。 。你怎么想?我怎么解决这件事?
private LinearLayout smallVideoRenderLayoutOutgoing, largeVideoRenderLayoutOutgoing;
private VideoCallImageRenderView smallPlayerGLView, largePlayerGLView;
private void initVideoRenderer() {
Constants.debugLog(TEST_TAG, "initVideoRenderer");
Constants.debugLog(TAG, "initVideoRenderer");
smallPlayerGLView = new VideoCallImageRenderView(this);
largePlayerGLView = new VideoCallImageRenderView(this);
VideoCallCamera.getInstance().startCamera();
VideoCallCamera.getInstance().cameraCallBack(largePlayerGLView, this);
isOwnSurfaceViewLarge = true;
largeVideoRenderLayoutOutgoing.addView(largePlayerGLView);
largeVideoRenderLayoutOutgoing.setOnClickListener(this);
smallVideoRenderLayoutOutgoing.addView(smallPlayerGLView);
smallVideoRenderLayoutOutgoing.setOnClickListener(this);
smallVideoRenderLayoutOutgoing.setVisibility(View.GONE);
}
答案 0 :(得分:1)
尝试代替:
<RelativeLayout>
<LinearLayout
android:id="@+id/smallVideoRenderLayoutOutgoing"
android:layout_width="120dp"
android:layout_height="170dp"
android:orientation="vertical"/>
<LinearLayout
android:id="@+id/largeVideoRenderLayoutOutgoing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
</RelativeLayout>
使用垂直方向的LinearLayout
作为根布局。对于你的大型布局,高度为0dp,重量为1 - 它将使你的大型布局占据所有可用空间 - 并且它将在小布局下。
如下所示:
<LinearLayout
android:orientation="vertical">
<LinearLayout
android:id="@+id/smallVideoRenderLayoutOutgoing"
android:layout_width="120dp"
android:layout_height="170dp"
android:orientation="vertical"/>
<LinearLayout
android:id="@+id/largeVideoRenderLayoutOutgoing"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"/>
</RelativeLayout>
答案 1 :(得分:0)
尝试从匹配父级更改布局宽度和高度以包装内容。 或者,当您使视图不可见时,为另一个视图调用bringToFront()方法。 您应该查看this.