, у меня есть относительный вид компоновки, а также 3 дочерних вида. Я пытаюсь скрыть их все в коде, установив для относительного макета НЕВИДИМЫЙ с помощью setVisibility. Забавно то, что когда я использую setVisibility (View.INIVISIBLE), скрывается только первый дочерний элемент, а не два других. Так что я немного сбит с толку - если я сделаю родительский вид невидимым, разве это не изменит видимость всех дочерних элементов или не оставит их в покое?
Не стесняйтесь указать мне на справочную страницу, которая объясняет это - я могу Ничего не нахожу.
Обновление: я пробовал установить для него View.GONE, но происходит то же самое, за исключением того, что двое дочерних элементов, которые остаются видимыми, немного сдвигаются.
Вот соответствующий XML:
<RelativeLayout
android:id="@+id/optionsform"
android:layout_width="fill_parent"
android:padding="8dp"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvoptions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="@string/tvoptions"
android:textColor="#f000"
android:textAppearance="?android:attr/textAppearanceMedium" android:textStyle="bold"/>
<TextView
android:id="@+id/tvdictionary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tvoptions"
android:layout_marginLeft="30dp"
android:layout_marginTop="16dp"
android:text="@string/dictionary"
android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#f000" />
<Spinner
android:id="@+id/dictionary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvdictionary"
android:layout_alignParentRight="true"
android:layout_marginTop="-10dp"
android:layout_marginLeft="6dp"
android:layout_toRightOf="@+id/tvdictionary" />
</RelativeLayout>
А вот соответствующий код, который я использую:
public void onClick(View v) {
//Toggle viewing of options, using "if" in case it is set to View.GONE
View view = findViewById(R.id.optionsform);
if (view.getVisibility() == View.VISIBLE)
view.setVisibility(View.INVISIBLE);
else
view.setVisibility(View.VISIBLE);
}