Я попытаюсь упростить проблему, чтобы избежать длинных фрагментов кода: я хочу сделать что-то подобное в моем макете
Структура должна быть простой с чем-то вроде:
LinearLayoutA (vertical)
LinearLayoutB (vertical)
LinearLayoutC (horizontal)
LinearLayoutC' (horizontal)
LinearLayoutB' (vertical)
LinearLayoutC'' (horizontal)
LinearLayoutC''' (horizontal)
All with weight=1
проблема для меня состоит в том, чтобы определить, что поместить в LinearLayoutC.Поэтому теперь фокусируемся на элементах внутри LinearLayoutC:
Моим первым вариантом был еще один LinearLayout (вертикальный), проблема в том, что если изображение выше, чем LinearLayoutC, TextView не виден.
Итак, я использовал этот RelativeLayout:
<RelativeLayout
android:id="@+id/RelativeLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Eiffel"
android:textSize="45sp"
android:id="@+id/text"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center"
></TextView>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/eiffel2"
android:id="@+id/image"
android:layout_above="@id/text"
android:layout_centerHorizontal="true"></ImageView>
</RelativeLayout>
Отлично, это работает!Но ненадолго = (. (Теперь мы будем называть его RelativeLayout1). Когда экран меньше, чем представления, компоновка кажется идеальной, но при переходе на экран большего размера блок выравнивается по низу родительского элемента, и я хотел быон должен быть центрирован на экране (или подслое). Как показано на этом экране:
Это происходит из-за android: layout_alignParentBottom = "true" в TextView.
Попытка решить, что я использовал RelativeLayout2 для обтекания RelativeLayout1 с кодом, подобным следующему:
<RelativeLayout2
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout1
android:layout_centerInParent="true"
.....
></RelativeLayout1>
</RelativeLayout2>
Но даже с этим макет RelativeLayout1 по-прежнему выравнивается по низу изображения (и заполняетэкран вертикально, так как он имел высоту = fill_parent, и я не понимаю, почему это происходит и как я могу это решить. Пожалуйста, вы можете мне помочь? Я пытался в течение нескольких часов. Заранее спасибо