Вложенный линейный макет показывает только первый вид после того, как он был установлен из видимого в Android - PullRequest
1 голос
/ 11 июня 2010

Я разрабатываю приложение для Android, но я все еще довольно нов.Я хочу иметь кнопку, и когда вы нажмете эту кнопку, появятся несколько TextViews и Buttons.Итак, у меня есть основной линейный макет, а затем другой линейный макет, вложенный внутрь, содержащий вещи, которые я хочу скрыть.У меня вложенный линейный макет установлен на android: visibility = "ушел".

У меня проблема в том, что он показывает только первый элемент внутри скрытого линейного макета, а не все.Я пытаюсь сделать так, чтобы это выглядело так:

    vgAddView = (ViewGroup)findViewById(R.id.add_details);

    btnAche.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            vgAddView.setVisibility(0);
        }
    });

Мой XML-файл такой:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button 
    android:text="@string/but_stomach_ache" 
    android:id="@+id/but_stomach_ache" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
</Button>
<Button 
    android:text="@string/but_food" 
    android:id="@+id/but_food" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
</Button>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/add_details"
    android:visibility="gone">
    <TextView
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="@string/when_happen">
        </TextView>
    <Button 
        android:text="@string/happen_now" 
        android:id="@+id/happen_now" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        </Button>
</LinearLayout>
</LinearLayout>

Ответы [ 3 ]

4 голосов
/ 11 июня 2010

Ваш TextView в LinearLayout установлен на android:layout_width="fill_parent" и android:layout_height="fill_parent", что означает, что он займет все пространство LinearLayout, не оставляя места для Button.Если вы используете инструмент hierarchyviewer, поставляемый с SDK, вы можете увидеть, что, когда вы смотрите на упражнение.

Вам необходимо установить высоту TextView, чтобыwrap_content или иначе оставьте место для Button.

1 голос
/ 11 февраля 2012

После того, как вы установите истинную видимость, установите, как показано ниже:

  • vgAddView.setVisibility(View.VISIBLE); - показать его
  • vgAddView.setVisibility(View.GONE); - скрыть его
0 голосов
/ 23 апреля 2015

Ваш первый TextView имеет layout_width = "fill_parent".Это означает, что вы TextView не оставляете место для кнопки.Вы можете попытаться установить атрибут layout_weight или установить для layout_width значение wrap_content

...