2016-03-31 233 views
0

我在這樣的容器中有兩個視圖。調整佈局的尺寸

[ContainerView  
[view 1 (RelativeLayout)]  
[view 2 (RelativeLayout)]  
(Relative Layout)] 

和id喜歡隱藏view1每當某個變量沒有給出。我似乎無法找到解決

  1. 皮廠景完全
  2. resive視圖2填滿整個ContainerView

現在我知道這個問題已經被問了十億次,但所有的解決方案,簡單地不工作對我來說...

下面是部分代碼:

佈局:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#eeeeee" 
android:id="@+id/mainview"> 


<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="0dp" 
    android:layout_marginBottom="50dp" 
    android:elevation="4dp" 
    android:background="@android:color/white" 
    android:layout_alignParentTop="true" 
    android:id="@+id/header"> 

    <TextView 
     android:id="@+id/headertext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/white" 
     android:text="Large Text" 
     android:padding="15dp" 
     android:textColor="@android:color/black" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textSize="50dp" 
     android:layout_marginLeft="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

<RelativeLayout 
    android:id="@+id/upperview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/lowerview" 
    android:layout_above="@+id/header"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/white" 
     android:elevation="4dp" 
     android:id="@+id/vanisherView" 
     android:layout_centerHorizontal="true" 
     android:layout_margin="20dp"> 

     <TextView 
      android:id="@+id/erklareung" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textColor="@android:color/black" 
      android:background="@android:color/white" 
      android:padding="40dp" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textSize="35dp" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentEnd="true" /> 

    </LinearLayout> 


</RelativeLayout> 


<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="470dp" 
    android:id="@+id/lowerview" 
    android:padding="20dp" 
    android:background="@android:color/white" 
    android:elevation="4dp" 
    android:layout_above="@+id/bottom"> 
</RelativeLayout> 
     <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="20dp" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp" 
    android:layout_marginLeft="0dp" 
    android:id="@+id/bottom" 
    android:paddingTop="30dp" 
    android:layout_alignParentBottom="true"> 

    <Button 
     android:id="@+id/back" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" 
     android:textSize="30dp" /> 

    <Button 
     android:id="@+id/nextButton" 
     android:layout_width="match_parent" 
     android:layout_height="80dp" 
     android:layout_weight="0.5" 
     android:text="Button" 
     android:textSize="30dp" 
     android:background="#009688" 
     android:textColor="#ffffff" /> 
</LinearLayout> 
</RelativeLayout> 

,什麼我想SOFAR就是

  1. upperview.getLayoutParams().height = 0; lowerview.getLayoutParams().height = 900; mainview.invalidate()
  2. 同樣與requestLayout
  3. 與靜態大小
  4. upperview.setVisibility(View.INVISIBLE); lowerview.getLayoutParams().height = 900;

乾杯

較低佈局創建一個新的RelativeLayout

雅各布斯

+0

VIew1.setVisiblity(VISIBLE.GONE) – Manifest

+0

@VarunKumar getLayoutParams()。height = 0/900,和類似的佈局變化,基本上是獲得其他問題的唯一解決方案 – PlatinTato

+0

發佈您的代碼。編輯上面的問題,併發布你迄今爲止嘗試過的代碼。 –

回答

1

我不確定你已經試過爲了達到這個目的。爲了供您參考,我發佈了一個用於實現相同輸出的示例代碼。

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<RelativeLayout 
    android:id="@+id/rlView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:text="Text Field in View 1" /> 
</RelativeLayout> 

<RelativeLayout 
    android:id="@+id/rlView2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/rlView1"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:text="Text Field in View 2" /> 
</RelativeLayout> 

</RelativeLayout> 

請注意,你必須爲了使rlView2大小相同的父的使用rlView1.setVisiblity(View.GONE)。

+0

我剛剛發佈了我的XML。我很抱歉造成的不便:D我需要較低的視圖是從開始的靜態大小 – PlatinTato

+0

我只是試過你的解決方案,它似乎無法正常工作。我做了靜態大小的rlView,並做了layout_below = rlView1。然後我調用setVisibility(View.INVISIBLE),但它只隱藏它,其他視圖大小不會改變。編輯View.GONE做的伎倆...我想我只是推遲 – PlatinTato

+0

哦,是的,我的錯誤,而不是VISIBLE.GONE它應該是View.GONE –