При использовании приведенного ниже макета (часть более крупного макета) видимость макета контейнера устанавливается на «пропал», пока не будет нажата кнопка. При нажатии кнопки, если container_ll не отображается, он устанавливается на видимое значение, и пользовательское представление добавляется к контейнеру напоминания Views_ll.
Представления добавляются, и представление container_ll отображается при нажатии кнопки. Далее следует ширина и высота различных видов после нажатия кнопки.
container_ll width 420, height 96.
lineDivider_view width 420, height 2 (as expected)
reminder_img width 36, height 36 (as expected, hdpi phone)
reminderViews_ll width 0, height 96 (argh)
<LinearLayout
android:id="@+id/container_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
>
<View style="@style/lineDivider_view" />
<ImageView
android:id="@+id/reminder_img"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_horizontal"
/>
<!-- Stick the actual Reminder TVs + Del buttons in here dynamically -->
<LinearLayout
android:id="@+id/reminderViews_ll"
android:orientation="vertical"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
/>
</LinearLayout>
Я немного растерялся относительно того, куда идти отсюда. Я думал об аннулировании макета, чтобы заставить его снова рисовать после того, как представление стало видимым, но это никогда не работало для меня (по-видимому), и если воспоминаниеViews_ll может получить высоту 96, то это не может быть проблемой, когда он Расчет размеров LinearLayout.
Надеюсь, вам понравилось читать этот вопрос так же, как и я. Любые указатели, как всегда, оценены.