2017-02-18 93 views
0

我想将一个布局放在另一个布局的顶部。我可以做到,但案件有问题。首先,让我形容它: 这里是我的布局代码:Android - 在另一个布局上放置一个布局

<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> 

还有其他的事情,但他们没有必要在这里。如果我运行这两个视图的代码工作正常。但是,如果我为我的Activity的onCreate()或onResume()方法中的“smallVideoRenderLayoutOutgoing”设置可变性(GONE)。它根本不显示。虽然我可以在程序中看到“smallVideoRenderLayoutOutgoing”的可见性,但它显示出它是可见的,但我在屏幕上看不到它。我认为它是由“largeVideoRenderLayoutOutgoing”重叠。你怎么想,我该如何解决这件事?

完整视图层次结构: My complete view heirarchy 这里是我的代码部分:

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); 

} 
+1

你设置'layout_height = match_parent'第二布局.. – akash93

+0

我需要全屏显示在第二布局,所以我设置此。它有什么问题? –

+0

如果第二个布局占据整个屏幕,那么第一个布局自然会与其重叠 – akash93

回答

0

尝试从比赛父改变布局的宽度和高度来包装内容。 或者当您为其他视图制作视图无形调用bringToFront()方法时。 您应该检查this.

+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> 
+0

其实mylayout更复杂,更分层。我张贴我的看法heirarchy。 –

+0

请参阅我的新编辑。我在这里添加了我的细节视图heirarchy。 –

相关问题