2013-09-13 5 views
0

У меня есть перекрывающееся расположение, которое вызывается этим XML-файл, который я объяснил ниже причин этой проблемы:Перекрытие Layout в Android

<FrameLayout 
    android:id="@+id/main_frame_top_navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_button" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_below="@+id/main_frame_top_navigation" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_tab" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/main_frame_button" > 
</FrameLayout> 


<FrameLayout 
    android:id="@+id/translucent_container" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/main_frame_tab" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_content" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/main_frame_tab" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_title_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/main_frame_content" 
    android:orientation="horizontal" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_time_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/main_frame_title_bar" 
    android:orientation="horizontal" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_login" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/main_frame_time_bar" 
    android:orientation="horizontal" > 
</FrameLayout> 

<FrameLayout 
    android:id="@+id/main_frame_bottom_navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_below="@+id/main_frame_login" 
    android:layout_alignParentRight="true" > 
</FrameLayout> 

макет представлен список всех контейнеров. Теперь, после размещения на нем контейнеров, я заметил, что есть ошибка, так как у меня есть перекрытие.

Вот интерфейс моего приложения:

enter image description here

Основной контейнер приложения добавляется в main_frame_tab с match_parent высоты, так как это высота зависит от настоящих контейнеров ниже. Его нельзя изменить на wrap_content, потому что я не добьюсь того, чего хочу, и не решит эту проблему.

Основная причина этой перекрывающейся ошибки заключается в том, что некоторое содержимое меню фактически помещается под меню внизу страницы.

Чтобы объяснить его дальше, вы можете также заметить, что установка контейнеров не использует layout_below до середины и на контейнерах на дне я использовал layout_above и есть пространство между, которые не связаны, которые могут быть причиной перекрытия ,

Какие способы решения этой перекрывающейся структуры?

+0

Действительно ли это скриншот приложения для Android? – Egor

+0

Нет. Но он достиг этого в Android, почти то же самое. :) – princepiero

ответ

0
// try this 

<FrameLayout 
     android:id="@+id/main_frame_top_navigation" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_button" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@id/main_frame_top_navigation" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_tab" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/main_frame_button" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/translucent_container" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/main_frame_tab" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_content" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/translucent_container" 
     android:layout_marginLeft="5dp" 
     android:layout_below="@id/main_frame_tab" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_title_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/main_frame_content" 
     android:orientation="horizontal" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_time_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/main_frame_title_bar" 
     android:orientation="horizontal" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_login" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/main_frame_time_bar" 
     android:orientation="horizontal" > 
    </FrameLayout> 

    <FrameLayout 
     android:id="@+id/main_frame_bottom_navigation" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/main_frame_login" > 
    </FrameLayout> 
+0

Спасибо, но не сработал. Основной_frame_bottom_navigation должен быть внизу все время, но если main_frame_content отсутствует, меню будет расти, и если есть контент, меню не появится на экране. – princepiero

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