2010-10-14 11 views
27

Widziałem wiele aplikacji, które używają warstw w swoich układach. Kiedy mówię o warstwowaniu, mam na myśli warstwy na osi Z w stosunku do widoku użytkownika. Jedną z takich aplikacji jest aplikacja powiadomień Craigslist, w której na górze listy znajduje się znak plus u dołu, umożliwiający użytkownikowi dostęp do dodawania dodatkowego elementu listy.Warstwy układu? Oś Z?

W moim przypadku z powodzeniem używam GestureListener do przewracania stron. Działa dobrze, ale chciałbym nałożyć przezroczystą prawą i lewą strzałkę png na brzegach stron, jeśli strony są cofnięte lub przewyższają stronę, na której użytkownik aktualnie się znajduje.

Szukałem, ale nie do końca wiem, w jaki sposób 2 elementy Układu zużywają jednocześnie tę samą przestrzeń. W tym przypadku masz zawartość strony (układ) i potrzebę czegoś na górze (oś Z) tego układu.

Czy ktoś może wskazać mi właściwy kierunek?

Odpowiedz

81

Spróbuj użyć FrameLayout.

FrameLayout zawsze umieszcza rzeczy jedna na drugiej i zawsze w odniesieniu do górnej lewej krawędzi, więc musisz użyć oddzielnych układów wewnątrz FrameLayout, aby umieścić obiekty tam, gdzie chcesz na ekranie.

Pamiętaj, że android umieści rzeczy w twoim układzie w kolejności, w jakiej się znajdują, więc umieść obiekty w dolnej części układu, które chcesz umieścić u góry ekranu.

Oto krótki przykład (nie zapomnij dodać odpowiednie dane nagłówka xml na górę węzła):

<FrameLayout> 
    <RelativeLayout> 
    <!-- Place the objects you want on the bottom here --> 
    </RelativeLayout> 


    <RelativeLayout> 
    <!-- Place the objects you want on the top here --> 
    </RelativeLayout> 
</FrameLayout> 
13

Mały dodatek do poprzedniej odpowiedzi: celu zapobiegania incydentom onclick na dole „warstwa” ustawiony atrybut clickable = "true" do górnej "warstwy"

<RelativeLayout 
.... 
android:clickable="true"/> 

W przeciwnym razie przyciski na czymś z "kliknięciem" zdarzeń można nacisnąć przez górną warstwę.

Znalazłem ten problem, gdy próbowałem ukryć interfejs użytkownika przez warstwę RelativeLayout z półprzezroczystym tłem.

Powiązane problemy