我在设置相对布局的可见性方面遇到了问题。我在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 :(得分:1)
执行所需操作的最简单方法是使用LinearLayout
而不是根RelativeLayout
..在您隐藏RelativeLayout
之后,子视图将被重新排列..如果您不想这样,可以在android:layout_alignWithParentIfMissing
上使用TextView
查看here文档。这不会完全符合您的要求,但它可能有助于您解决问题:)。