Я уверен, что упускаю что-то простое ...
Справочная информация:
Я новичок в Android и дизайне пользовательского интерфейса, и я просто хотел поиграть с макетами. Прямо сейчас я хочу поставить флажок поверх текстовой метки. Я использую следующий формат XML, который отлично работает :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<CheckBox android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/check_box_text" />
<TextView android:id="@+id/dummy_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dummy_label" />
</LinearLayout>
Мои тесты (просто чтобы понять, как все работает):
Сценарий 1) Когда я устанавливаю CheckBox
s layout_height
на "fill_parent"
, CheckBox
занимает весь экран и выравнивается по центру (т.е. - TextView
исчезает).
Сценарий 2) Если I вместо установить TextView
s layout_height
на "fill_parent"
, CheckBox
действительно НЕ исчезнет. На самом деле ничего не исчезает, и макет выглядит так же, как и в приведенном выше xml, где все перемещается в верхний левый угол.
Вопрос (и комментарии):
Почему сценарий 1 работает так, как работает?
Такое поведение мне кажется несовместимым. Я подумал, что fill_parent
должен позволять элементу заполнять все пространство, доступное в родительском элементе. Поэтому мне кажется, что TextView
должен получить то место, которое ему нужно , необходимое (поскольку оно wrap_content
), но CheckBox
должно занять оставшееся пространство (поэтому TextView
будет вынужден в нижней части экрана, но не невидимым). Другими словами ... Сценарий 2 имеет для меня смысл, а сценарий 1 - нет.
Пожалуйста, объясните: -).
Спасибо
Tom