2012-06-24 50 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的文档。这不会按照你想要的方式工作,但它可以帮助你解决问题:)。