Android: ориентация экрана с помощью FrameLayout иlativeLayout - PullRequest
2 голосов
/ 02 февраля 2011

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

Я безуспешно пытался использовать эту опцию Android: ориентация = "горизонтальные" в планировке земельного ресурса.

Пожалуйста, сообщите.

Спасибо. 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>

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

В документации Android написано

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

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

1 голос
/ 03 февраля 2011

Спасибо за ответ.установка двух изображений в FrameLayout не имела никакого эффекта.

На основе потока: Как отключить изменение ориентации на Android?

Я использовал опцию:

android:configChanges="keyboardHidden|orientation"

в AndroidManifest.xml и теперь работает нормально.

-Oakist

...