Android: ориентация экрана с помощью FrameLayout и relativeLayout

У меня есть приложение для Android, которое состоит из основного макета FrameLayout, который имеет два представления, установленных в RelativeLayout. (см. макет XML-файлов ниже). Проблема связана с ориентацией экрана второго вида (view2) (вид становится черным, и приложение зависает).

Я безуспешно пытался использовать опцию android: Ориентация = "горизонтальная" в ресурсе layout-land.

Пожалуйста, порекомендуйте.

Спасибо. Oakist

main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include android:id="@+id/notelist" layout="@layout/view1" />
<include android:id="@+id/notelist" layout="@layout/view2" />
</FrameLayout>

view1.xml

<RelativeLayout android:id="@+id/Layout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:id="@+id/image01"
android:layout_height="wrap_content"
>
</ImageView>
</RelativeLayout>

view2.xml

<RelativeLayout android:id="@+id/Layout02"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:id="@+id/image02"
android:layout_height="wrap_content"
>
</ImageView>
</RelativeLayout>

person oakist    schedule 02.02.2011    source источник


Ответы (1)


В документации Android говорится

FrameLayout FrameLayout - это простейший тип объекта макета. По сути, это пустое пространство на экране, которое позже вы можете заполнить одним единственным объектом - например, изображением, которое вы меняете местами. Все дочерние элементы FrameLayout закреплены в верхнем левом углу экрана; вы не можете указать другое расположение для дочернего представления. Последующие дочерние представления будут просто отображаться поверх предыдущих, частично или полностью скрывая их (если только новый объект не является прозрачным).

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

person AndyAndroid    schedule 02.02.2011