В случае, если у меня есть 2 вида, и я хочу, чтобы вы заняли необходимое пространство, а другое, чтобы взять оставшееся пространство, как мне это сделать?Заполнить оставшееся пространство: LinearLayout и вес или RelativeLayout?
Предположим, я хочу, чтобы взгляды были вертикальными. В приведенном ниже представлении должно быть занято необходимое пространство (wrap_content), и вышеописанное представление должно занимать оставшееся пространство макета контейнера.
Я использовал эти 2 решения (упрощенный код):
1) LinearLayout
с weight
<LinearLayout ...>
<View height="0dp" weight="1" .../>
<View height="wrap_content" .../>
</LinearLayout>
2) RelativeLayout
с совместив
<RelativeLayout ...>
<View height="wrap_content" id="@+id/big" alignParentTop .../>
<View height="wrap_content" below="@+id/big" alignParentBottom .../>
</RelativeLayout>
LinearLayout
подход всегда работает, и RelativeLayout
обычно работает так, как ожидалось, но он явно неоднозначен, поскольку ничего ays, то вид @+id/big
должен быть больше, чем показано ниже.
Я думаю, что первый подход лучше, так как не является двусмысленным. Тем не менее, я видел много примеров и ответов со вторым подходом.
Какое решение вы используете для этих случаев. Есть ли наилучшая практика?
Спасибо!
EDIT
Принимая ответ Touf «с, теперь я хотел бы сделать это (обратите внимание на match_parent
):
<RelativeLayout ...>
<View height="match_parent" id="@+id/big" alignParentTop .../>
<View height="wrap_content" below="@+id/big" alignParentBottom .../>
</RelativeLayout>
Спасибо, имеет смысл, хотя я не знаю, почему андроид изменил «fill_parent» на «match_parent». Я имею в виду, что ваше решение будет совершенно понятным с помощью классификатора старого размера: «Заполните родителя столько, сколько сможете». Новый размер, кажется, говорит «соответствовать размеру родителя». –
"fill_parent" и "match_parent" - то же самое. Ознакомьтесь с этими ссылками: http://stackoverflow.com/questions/10854717/why-did-match-parent-replace-fill-parent http://developer.android.com/reference/android/view/ViewGroup. LayoutParams.html – Touf
Кстати, я думаю, мне нужно использовать только «выше» или «ниже»; использование обоих является избыточным, не так ли? Возможно, я должен использовать ниже, чтобы ссылаться на представление, которое было объявлено ранее, хотя я не уверен, могу ли я использовать прямые ссылки (ссылаясь на объявления, объявленные впоследствии в xml). –