2012-06-24 89 views
1

我在設置相對佈局的可見性時遇到了問題。我在relativelayout和下一個TextView下面有大部分佈局。但在我的代碼中,當調用myRelativeLayout.setVisibility(View.GONE); 時,在下面的TextView沒有出現。我嘗試了幾種方法來重新排列布局,但是我需要它下面的textview。由於隱形後查看佈局

我的XML:

<merge xmlns:android="http://schemas.android.com/apk/res/android" > 
    <ScrollView 
     android:id="@+id/scrollView_liab_ra_flipper_04" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <RelativeLayout 
      android:id="@+id/linearLayout_liab_ra_flipper_04" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/someTextView" 
       android:text="Something" /> 

      <!-- This relative layout should be removable --> 
      <RelativeLayout 
       android:id="@+id/vg_liab_ra_04_flipper_car_container_visible" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/someTextView" > 

       <TextView 
        android:id="@+id/tv_1" 
        style="@style/WhiteFormText" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="15dp" 
        android:layout_marginTop="2dp" 
        android:text="@string/licence_plate_counter" > 
       </TextView> 

       <EditText 
        android:id="@+id/et_1" 
        style="@style/WhiteFormField" 
        android:layout_below="@+id/tv_1" 
        android:hint="@string/licence_plate_hint" > 
       </EditText> 
      </RelativeLayout> 

      <!-- This textview is not visible if relative layout is gone --> 
      <TextView 
       android:id="@+id/tv_liab_ra_04_flipper_mandat" 
       style="@style/WhiteFormTextHint" 
       android:layout_below="@+id/vg_liab_ra_04_flipper_car_container_visible" 
       android:layout_marginBottom="15dp" 
       android:text="@string/mandatory_field" > 
      </TextView> 
     </RelativeLayout> 

    </ScrollView> 
</merge> 

Java代碼:

private void hideCar() {  

    if (!accident.getParticipant(0)) { 
     rlCarContainer.setVisibility(View.GONE); 

    } else { 
     rlCarContainer.setVisibility(View.VISIBLE); 

    } 

} 
+0

您的RelativeLayout的唯一孩子是TextView。如果將TextView從RelativeLayout中移出,它將解決您的問題,但是我不明白爲什麼要將空的RelativeLayout的可見性設置爲「不存在」。 – eightx2

+1

要清楚:您正在將'vg_liab_ra_04_flipper_car_container_visible'的可見性設置爲'GONE'而不是'linearLayout_liab_ra_flipper_04'?你還能看到TextView的'someTextView'嗎? – Sam

+0

@Sam是的,即時設置vg_liab_ra_04_flipper_car_container_visible到GONE。 someTextView仍然可見,tv_liab_ra_04_flipper_mandat不是 – Billda

回答

1

最簡單的方式做你想做的就是用LinearLayout,而不是你的根RelativeLayout的..孩子的意見會得到重新調整如果你不想那樣,你可以使用android:layout_alignWithParentIfMissing上的TextView參見here的文檔。這不會按照你想要的方式工作,但它可以幫助你解決問題:)。