1

Я использую FrameLayouts для перекрытия изображения по изображению, но я не могу понять в этом конкретном сценарии, где мой внутренний FrameLayout не отображается перед другим изображением. Вот теория:Как правильно обрабатывать вложенные FrameLayout

и вот фактическая вещь:

actual

Так вот мой XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/mypage_container" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<FrameLayout 
    android:id="@+id/frame" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <ImageView 
      android:id="@+id/cover_photo" 
      android:layout_width="match_parent" 
      android:layout_height="180dp" 
      android:layout_marginTop="120dp" 
      android:scaleType="fitXY" 
      android:src="#CCFF0000" /> 

     <FrameLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/cover_photo" > 

      <ImageView 
       android:layout_width="105dp" 
       android:layout_height="90dp" 
       android:layout_below="@id/cover_photo" 
       android:adjustViewBounds="true" 
       android:src="@color/aqua" 
       android:translationY="-45dp" /> 

      <ImageView 
       android:layout_width="80dp" 
       android:layout_height="80dp" 
       android:layout_marginLeft="15dp" 
       android:src="@color/green" 
       android:translationY="-40dp" /> 
     </FrameLayout> 

    </RelativeLayout> 
</FrameLayout> 

ли я поместил внутренний FrameLayout неправильно? Я не знаю, что делать дальше. Любая помощь будет глубоко оценена. Благодаря!

ответ

2

Это потому, что ваш FrameLayout имеет следующую строку: android:layout_below="@id/cover_photo". У вас может быть FrameLayout следующим образом:

<FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="-40dp" 
     android:layout_alignBottom="@id/cover_photo" > 
+0

Я забыл пропустить эту строку, но эта строка в основном не имела никакого эффекта в макете, поскольку ее родительский элемент FrameLayout. Я удалил эту строку, и ничего не изменилось. Спасибо за ваш ответ, хотя! –

+0

Извините, я обновил свой ответ, надеюсь, что это поможет. Кстати, почему у вас Relative -> Frame -> Relative ?? Почему у вас нет только RelativeLayout? – koso

+0

Хорошо, так что я получил ваш обходной путь. Вместо представления под представлением и переместил его вверх, вы выровняли его внизу и сдвинули вниз. Brilliant! Кстати, у меня есть что-то еще под родительским RelativeLayout, больше ImageView и другого RelativeLayout. Это всего лишь фрагмент из моей общей компоновки. Спасибо огромное! –

Смежные вопросы